单击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操作。
我为你的需要写了一个演示。
您还可以使用消息:
在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的更多信息。