我曾经认为content_scripts是直接在页面上执行的,但现在似乎有一些沙盒机制。
我正在开发一个扩展程序来记录网站的所有XHR流量(用于调试和其他开发目的),在控制台中,以下嗅探代码有效:
var o = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(){
console.log(arguments, 'open');
return o.apply(this, arguments);
};
console.log('myopen');
console.log(window, window.XMLHttpRequest, window.XMLHttpRequest.prototype, o, window.XMLHttpRequest.prototype.open);
每次发送XHR时,此代码将记录一条消息。然而,当我将其放入扩展中时,真正的原型没有被修改。显然,我的脚本看到的window.XMLHttpRequest.prototype与实际页面不同。有什么方法可以解决这个问题吗?此外,这种沙盒行为在哪里有文档记录?我找了一下,但没找到任何信息。