您需要添加一个 content_script。content_script 具有对 DOM 的完全访问权限,您可以绑定到页面上的所有事件
只需将其添加到清单文件中
"content_scripts":[{
"matches":["http://*/*","https://*/*"],
"js":"your injected script.js"
}]
您可以获得更多信息https://developer.chrome.com/docs/extensions/mv2/content_scripts/
同样从您的问题来看,您似乎将使用自定义事件,因此您的 content_scrip js 将与此类似
document.addEventListener('yourEventName', function(e){
//send message to ext
var someInformation = {/*your msg here*/}
chrome.extension.sendMessage(someInformation, function(response) {
//callback
});
}, false);
背景页面应该收听消息。
chrome.extension.onMessage.addListener(function(myMessage, sender, sendResponse){
//do something that only the extension has privileges here
return true;
});
然后您可以从页面上的所有脚本触发事件...
var evt = document.createEvent('Event');
evt.initEvent('yourEventName', true, true);
var some_element = document;
some_element.dispatchEvent(evt);