每次点击扩展按钮时都无法拍摄响应

时间:2014-12-06 20:08:07

标签: javascript jquery google-chrome google-chrome-extension

所以我只是在每次点击扩展按钮时尝试获得响应。就像AdBlock一样,这是怎么回事

enter image description here

但我只是在每次点击按钮时都尝试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才会启动。有任何想法吗?

1 个答案:

答案 0 :(得分:1)

如果您没有弹出窗口(单击按钮时没有显示),则单击按钮时会触发一个事件:

  

chrome.browserAction.onClicked

     

单击浏览器操作图标时触发。如果浏览器操作有弹出窗口,则不会触发此事件。

使用:

// In your background script
chrome.browserAction.onClicked.addListener( function() {
  // Do stuff
});

但是,如果确实有弹出窗口,那么,正如文档所提到的,此事件不会触发。然后你的代码更合适:你只需要从弹出窗口发送一条消息,并在打开时在后台脚本中捕获它。请参阅this answer中的完整示例。