我的印象是 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 与实际页面的不同。
有没有办法解决这个问题?此外,这种沙盒行为是否记录在任何地方?我环顾四周,但找不到任何东西。