【发布时间】:2016-05-18 11:43:42
【问题描述】:
我有一个 chrome 扩展程序,当我在一个选项卡中使用它时,它可以完美运行。然后我转到另一个选项卡,扩展程序仍然有效,但这是我无法理解的奇怪事情。当我回到第一个选项卡并单击浏览器操作以显示扩展名或关闭(如果我将其保持打开状态)时,什么也没有发生。我需要第二次点击浏览器操作,然后扩展开始工作。
定义浏览器操作按钮的部分 background.js:
chrome.browserAction.onClicked.addListener(function (tab) {
if (page_loaded == true) {
chrome.tabs.query({ active: true, currentWindow: true, highlighted: true }, function (tabs) {
chrome.tabs.sendMessage(tabs[0].id, { greeting: "browser_action_clicked" }, function (response) {
if (response.found == 'N') {
chrome.tabs.executeScript(null, { file: "src/injection.js" }, function () {
chrome.tabs.executeScript(null, { file: "src/extension.js" }, function () {
chrome.tabs.executeScript(tab.id, { code: "$('.cheap-watcher' ).animate({ 'right': '0px' }, 'slow');" }, function () {
sidebarActive = true;
});
});
});
}
else {
if (sidebarActive == true) {
chrome.tabs.executeScript(tab.id, { code: "$('.cheap-watcher' ).animate({ 'right': '-370px' }, 'slow');" }, function () {
sidebarActive = false;
});
}
else {
chrome.tabs.executeScript(tab.id, { code: "$('.cheap-watcher' ).animate({ 'right': '0px' }, 'slow');" }, function () {
sidebarActive = true;
});
}
}
});
});
}
});
我写错了吗?还是chrome bug?
【问题讨论】:
-
“这里不需要的其他功能” 或者你认为。
-
旁注:您不必查询活动选项卡,您已经从
onClicked事件中获得了它。 -
您的
page_loaded有何变化?还有 - 你试过debugging这个吗? -
无论如何,我可以猜到足以回答这个问题..
-
我的 page_loaded 更改在 chrome.tabs.onUpdated.addListener 函数中完成后它是真的加载它是假的。我还没有调试它。它想听听你的猜测。附注:删除 active: true 扩展后抛出错误,我的响应未定义。 @Xan
标签: google-chrome google-chrome-extension