Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 无法替换注入脚本中的警报_Google Chrome Extension - Fatal编程技术网

Google chrome extension 无法替换注入脚本中的警报

Google chrome extension 无法替换注入脚本中的警报,google-chrome-extension,Google Chrome Extension,我正在为这个网站写一个扩展。在我的注入脚本(使用chrome.tabs.executeScript注入)中,运行在“document\u end”上,一切似乎都很正常,但我想删除站点的“警报”提示 为此,我已将此代码放在注入脚本中,但它不起作用: window.alert = function(msg){ console.log("bypassed"); } 还尝试从注入的脚本执行此操作: $('<script>window.alert = function (msg){}

我正在为这个网站写一个扩展。在我的注入脚本(使用
chrome.tabs.executeScript
注入)中,运行在“document\u end”上,一切似乎都很正常,但我想删除站点的“警报”提示

为此,我已将此代码放在注入脚本中,但它不起作用:

window.alert = function(msg){
    console.log("bypassed");
}
还尝试从注入的脚本执行此操作:

$('<script>window.alert = function (msg){}</' + 'script>').appendTo(document.body);
我错过了什么?我已经为另一个站点编写了另一个扩展,该方法确实覆盖了
警报
功能


更新:我无法从注入脚本调用下载网页中的本机函数,从内容脚本调用时会发生这种情况。但是我的注入脚本是使用
chrome.tabs.executeScript

加载的,我猜您的问题在于
manifest.json
文件,您已经在其中指定了
“run\u at”:“document\u end”

从:

在“document_start”的情况下,这些文件是在css中的任何文件之后,但在构建任何其他DOM或运行任何其他脚本之前注入的

但是,

在“document_end”的情况下,文件在DOM完成后立即注入,但在加载子资源(如图像和帧)之前注入


引用,在
document\u end
的情况下,由于函数已经加载,无法进行覆盖,因此您应该在
document\u start
处插入javascript,我猜您的问题在于
manifest.json
文件,您已经指定了
“run\u at”:“文档结束”

从:

在“document_start”的情况下,这些文件是在css中的任何文件之后,但在构建任何其他DOM或运行任何其他脚本之前注入的

但是,

在“document_end”的情况下,文件在DOM完成后立即注入,但在加载子资源(如图像和帧)之前注入


引用,在
document\u end
的情况下,无法进行覆盖,因为函数已经加载,因此您应该在
document\u start

检查扩展名打开的页面时,将javascript注入,脚本是否成功附加?@NoamHacker是的,这是肯定的。您尝试过t吗使用?的代理模式建议在“文档开始”而不是“文档结束”时运行,以便在加载任何页面功能之前进行覆盖“。我会写一个更详细的答案。方法1和3不起作用,因为你将覆盖孤立世界的警报,而不是原始页面的警报。我不明白为什么方式2不起作用。当您在打开扩展名的情况下检查页面时,是否成功附加了脚本?@NoamHacker是的,这是肯定的。您是否尝试过使用的代理模式?建议在文档开始而不是文档结束时运行,“以便在加载任何页面功能之前进行覆盖”。我会写一个更详细的回答方式1和3不起作用,因为你将覆盖孤立世界的警报,而不是原始页面的警报。我不明白为什么方法2不起作用。
chrome.tabs.executeScript({
                code: 'window.alert=function(msg){}' //while alert("hello") works
            });