0

我正在使用Chrome中的一个Web脚本进行扩展。我发现这一点:在'document_start'处运行的内容脚本会阻止网页上的JS脚本?

"content_scripts": [{ 
    "js": [.....], 
    "matches": ["http://*/*", "https://*/*"], 
    "run_at": "document_start" 
}] 

在我的JS脚本,只有两个行代码:

window.test = 'test'; 
console.log(window.test); 

而且我想在这种情况下,打开我的网页:

  1. 没有打开铬devtool,我打开了一个新选项卡,并转到我的网页
  2. 我检查了我的代码中的console.log显示在我的控制台中。 但是,当我继续输入window.test或test时,我发现它们的结果都是未定义的。

P.S.

  1. 我试着将'document_start'改成'document_end',并且定义了这两个全局变量,没有错误。
  2. 对于内容脚本,我试图编写一个新的视频内容脚本或内容'console.log ...',但这种方式没有奏效,所以它不是内容脚本内容的问题

我需要问你的想法,如果你愿意,你可以试试你的Chrome和你的扩展。

+1

内容脚本在孤立的世界中运行,无法访问您在JS代码中创建的页面变量或自定义DOM属性。请参阅[构建Chrome扩展 - 使用内容脚本在页面中注入代码](https://stackoverflow.com/q/9515704)另外,使用devtools控制台UI时,请确保在控制台上方选择正确的上下文:'对于网页来说是顶部,对于内容脚本来说是<你的扩展>。 – wOxxOm

+0

@wOxxOm非常感谢你,这非常有帮助!我试图学习很多科学,但没有什么新闻,因为我忘记了最简单的事情,感谢你的提及! –

回答

1

谢谢你的回答! @wOxxOm 正如你在评论中所说的那样,我会以此为答案,让其他人防止这一点很简单但很难找到。

当使用devtools控制台UI确保选择控制台上方的正确的上下文顶部的网页,“您的扩展”为内容脚本。