【发布时间】:2014-04-22 15:42:05
【问题描述】:
我有一个正在运行的 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});
}
}
});
}
});
}
为了改变网页的颜色,当标签的 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})
}
}
});
我工作完美。 但是,当我打开新标签时,我会看到原始图像,并且在几微秒后看到重新着色的图像。 我想改进这一点,只有在重新着色后才能看到页面(我不想看到原版)。
有人知道如何解决吗? 提前致谢。
【问题讨论】:
标签: javascript google-chrome google-chrome-extension