小编use*_*287的帖子

Chrome 扩展程序:在加载(渲染)页面之前运行

我有一个 Google Chrome 扩展工作,它的目标是改变网页中像素图像的颜色。

要更改网页中图像的颜色,请从已打开的选项卡中使用代码(在 background.js 文件中):

function executeScriptsInExistingTabs(){
  chrome.windows.getAll(null, function(wins) {
    for (var j = 0; j < wins.length; ++j) {
      chrome.tabs.getAllInWindow(wins[j].id, function(tabs) {
        for (var i = 0; i < tabs.length; ++i) {
          if (tabs[i].url.indexOf("chrome://") != 0) {
            chrome.tabs.executeScript(tabs[i].id, { file: 'muda_conteudo.js' });
            chrome.browserAction.setIcon({path: "on.png", tabId:tabs[i].id});
          }
        }
      });
     }
   });
 }
Run Code Online (Sandbox Code Playgroud)

要更改网页中的颜色,当更改选项卡的URL时,我使用以下代码(在background.js文件中):

chrome.tabs.onUpdated.addListener(function(tabid, info, tab) {
  if (flag){
    if (info.status == "complete") {
       chrome.tabs.executeScript(tabid, {file:"muda_conteudo.js"});
       chrome.browserAction.setIcon({path: "on.png", tabId:tab.id})
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

我完美地工作。但是,当我打开新选项卡时,我看到了原始图像,并且仅在几微秒后看到了重新着色的图像。我想改进这一点,只有在重新着色后才能看到页面 …

javascript google-chrome google-chrome-extension

2
推荐指数
1
解决办法
3170
查看次数