所以我只是在每次点击扩展按钮时尝试获得响应。就像AdBlock一样,这是怎么回事
但我只是在每次点击按钮时都尝试console.log()
而没有任何可见的弹出窗口。
到目前为止我已尝试过这个
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
switch (request.directive) {
case "popup-click":
// execute the content script
chrome.tabs.executeScript(null, { // defaults to the current tab
file: "real.js", // script to inject into page and run in sandbox
allFrames: true // This injects script into iframes in the page and doesn't work before 4.0.266.0.
});
sendResponse({}); // sending back empty response to sender
break;
default:
// helps debug when request directive doesn't match
alert("Unmatched request of '" + request + "' from script to background.js from " + sender);
}
}
);
然后我的real.js
console.log("Yo");
但遗憾的是,我只有Yo
才会启动。有任何想法吗?
答案 0 :(得分:1)
如果您没有弹出窗口(单击按钮时没有显示),则单击按钮时会触发一个事件:
chrome.browserAction.onClicked
单击浏览器操作图标时触发。如果浏览器操作有弹出窗口,则不会触发此事件。
使用:
// In your background script
chrome.browserAction.onClicked.addListener( function() {
// Do stuff
});
但是,如果确实有弹出窗口,那么,正如文档所提到的,此事件不会触发。然后你的代码更合适:你只需要从弹出窗口发送一条消息,并在打开时在后台脚本中捕获它。请参阅this answer中的完整示例。