首页 > 解决方案 > Chrome 扩展 - 打开没有图像的标签

问题描述

我已经构建了一个 Chrome 扩展程序,可以在新选项卡中打开用于 html 解析的 url。一切正常,但我想通过在页面加载之前剥离图像来优化加载速度。

到目前为止,我以这种方式调用选项卡:

function CreateTab(createProperties, shop_list) {
  return new Promise((resolve, reject) => {
    chrome.tabs.create(createProperties, tab => {
      if (chrome.runtime.lastError) {
        reject(new Error(chrome.runtime.lastError));
      } else {
        chrome.tabs.executeScript(tab.id, {
          file: 'GetSource.js',
        }, async function(results) {
          my parsing code here
        }
      }
    }
  }
}

当调用 executeScript 时,已经太晚了,页面就在那里。有没有办法在页面加载之前执行脚本,以便我可以在获取 html 之前删除图像?

谢谢洛朗

标签: javascriptgoogle-chrome-extension

解决方案


您可以将chrome.webRequest API ( https://developer.chrome.com/extensions/webRequest ) 与onBeforeRequest一起使用,该 API 在请求即将发生时触发。此事件在建立任何 TCP 连接之前发送,可用于取消或重定向请求。这样的事情应该会阻止 .jpg 图像加载:

chrome.webRequest.onBeforeRequest.addListener(
        function(details) {
          return {cancel: details.url.indexOf(".jpg") != -1};
        },
        {urls: ["<all_urls>"]},
        ["blocking"]);

推荐阅读