我想在Chrome浏览器的所有标签上捕获已注入脚本的点击事件。
如下方法
event.js是主要的javascript,test.js是注入js。
event.js
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo) {
if (changeInfo.status === 'complete') {
chrome.tabs.executeScript(tabId, { file: 'test.js'}, function(){
console.log('executed');
});
}
});
test.js
var fragment = create('<div onClick="sendMessage to my extension">Hellow</div>');
document.body.insertBefore(fragment, document.body.childNodes[0]);
如何从其他网站接收我的扩展信息? 这不可能吗?
感谢阅读。
答案 0 :(得分:1)
假设您正在正确地将test.js
作为内容脚本注入(例如,通过在 manifest.json 中声明相应的属性),您需要制作以下修改:
在 event.js 中添加:
chrome.runtime.onMessage.addListener(function(msg, sender) {
console.log('Tab with ID ' + sender.tab.id + ' sent a message:\n' + msg.text);
});
在 test.js 中将代码替换为:
var mydiv = document.createElement('div');
mydiv.textContent = 'Hello';
mydiv.addEventListener('click', function() {
chrome.runtime.sendMessage({ text: 'Someone clicked my DIV !' });
});
document.body.insertBefore(mydiv, document.body.childNodes[0]);