javascript – 谷歌浏览器扩展“内容”脚本沙盒?

前端之家收集整理的这篇文章主要介绍了javascript – 谷歌浏览器扩展“内容”脚本沙盒?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的印象是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与实际页面的不同.

这有什么办法吗?此外,这个沙箱行为是否记录在任何地方?我环顾四周,却找不到任何东西.

解决方法

你不能这样做.根据 documentation

However,content scripts have some
limitations. They cannot:

  • Use chrome.* APIs (except for parts of chrome.extension)
  • Use variables or functions defined by their extension’s pages
  • Use variables or functions defined by web pages or by other content scripts
  • Make cross-site XMLHttpRequests

猜你在找的JavaScript相关文章