【发布时间】:2012-05-06 08:29:29
【问题描述】:
由于扩展程序无法访问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 ajax 响应被完全解析但都未能触发时,DOM 元素会发生变化。
我是否正在尝试做不可能的事情?
【问题讨论】:
标签: ajax google-chrome-extension