单击popup.html(chrome扩展名)后执行脚本

时间:2013-12-24 17:15:37

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

当我点击popup.html中的按钮时,我正试图在页面上执行javascript。我试着用这种方式:

background.js

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo){
    if(changeInfo.status == "loading") {
        insert(tabId);
    }
});
function insert(tabId) {
    chrome.tabs.get(tabId, function(tab) {
        $('button').click(function() {
            chrome.tabs.executeScript(tab.id, {file: 'js/alert.js'});
        });
    });
}

Alert.js只包含一个字符串:alert('works');

警报就是一个例子。在用户点击im popup.html按钮后,真实脚本应该使用打开的选项卡进行一些DOM操作。

2 个答案:

答案 0 :(得分:23)

我为你的需要写了一个演示。

https://gist.github.com/greatghoul/8120275

答案 1 :(得分:1)

您还可以使用Messaging:

popup.js中的

document.getElementById("clicked-btn").addEventListener("click", function(e) {
    chrome.runtime.sendMessage({'myPopupIsOpen': true});
});
背景中的

chrome.runtime.onMessage.addListener(function(message, sender) {
      if(!message.myPopupIsOpen) return;

      // Do your stuff
});

未经测试但应该有效,有关Messaging的更多信息。