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

当我点击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操作。

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

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

您还可以使用消息:

在popup.js中

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

在background.js

 chrome.runtime.onMessage.addListener(function(message, sender) { if(!message.myPopupIsOpen) return; // Do your stuff }); 

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