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

Vla*_*iev 9 javascript jquery google-chrome google-chrome-extension

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

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'});
        });
    });
}
Run Code Online (Sandbox Code Playgroud)

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

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

gre*_*oul 24

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

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


Jea*_*rat 5

您还可以使用消息传递:

在 popup.js 中

document.getElementById("clicked-btn").addEventListener("click", function(e) {
    chrome.runtime.sendMessage({'myPopupIsOpen': true});
});
Run Code Online (Sandbox Code Playgroud)

在后台.js

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

      // Do your stuff
});
Run Code Online (Sandbox Code Playgroud)

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