由于扩展无法访问unsafeWindow
,如 Firefox 可以,挂钩到 DOM 脚本我是否正在寻找其他想法,所以我来寻求帮助!
如何使用一些代码注入 DOM 并将截获的响应发送到后台页面,然后在调用内容脚本进行最终处理之前进行一些初始处理。完成后,它以修改后的响应或原始响应(取决于)响应后台,并且后台页面将响应发送回 DOM,DOM 将其处理给 DOM 脚本响应函数。
这样做只有一个问题,后台页面无法与 DOM 通信。
我做了一个注入一些代码的小测试,在那里我向控制台输出了一些东西和一个警报。结果不好,因为警报触发但控制台是空的 - 甚至没有错误,这让我想知道 -哪个控制台收到了输出?
function injectCode(fn){ // Executing an anonymous script
var script = document.createElement('script');
script.type = 'application/javascript';
script.textContent = '(' + fn + ')();';
document.documentElement.appendChild(script); // run the script
document.documentElement.removeChild(script); // clean up
}
var code = function(){
console.log('dom',window);
alert('code injected');
}
injectCode(code);
我还尝试addEventListener
了DOMAttrModified
DOMSubtreeModified
DOMNodeInserted
DOM 元素,这些元素在 DOM ajax 响应被完全解析但都未能触发时发生变化。
我是否正在尝试做不可能的事情?