如何使用Chrome扩展程序覆盖网页中的功能?

won*_*ng2 3 javascript google-chrome google-chrome-extension

假设有一个网站有一个全局命名空间Q = {},并且它下面有一个函数:Q.foo

我想在我的chrome扩展中覆盖这个功能,所以当网页调用时Q.foo,它会做我喜欢的事情.

我试着写:

Q.foo = function(){
    alert("over written");
}  
Run Code Online (Sandbox Code Playgroud)

内容脚本.但它不起作用....
谢谢.

Rod*_*ist 6

主要的问题是,在创建的分离环境中存在chrome扩展,这样扩展开发人员就无法使用现有页面的javascript,反之亦然.

然而,令人讨厌的人可以这样做:

document.head.innerHTML += '<script>Q.foo = function(){alert("over written");}</script>';
Run Code Online (Sandbox Code Playgroud)

基本上它的作用是它将一个脚本标记附加到dom中,然后在页面上下文中立即进行评估.