Chrome扩展程序:Javascript未加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome扩展程序:Javascript未加载相关的知识,希望对你有一定的参考价值。

我有以下代码用于chrome扩展,contentcript.py根据stackoverflow上的另一个问题:

manifest.js

{
"name": "test script",
"version": "0.1",
"content_scripts": [{
    "js": ["contentscript.js"],
    "matches": ["http://*/*"]
}],
"manifest_version": 2,
"web_accessible_resources": ["script.js"]
}

contentscript.js

var s = document.createElement('script');
s.src = chrome.extension.getURL('script.js');
(document.head||document.documentElement).appendChild(s);
s.onload = function() {
    s.parentNode.removeChild(s);
};

script.js

document.body.innerhtml = document.body.innerHTML.replace(new RegExp("this", "gi"), "that");

为了简单地替换一些文字。如果我将test.js上的相同表达式放在测试html文件上,它可以工作,但是在扩展中它看起来并不像代码实际注入一样。我不能为我的生活找出原因。清单和内容脚本按顺序显示,所以我不知道该怎么做。

答案

尝试将“https:// * / *”添加到manifest.json中的匹配项。我建议你把第一行放在contentscript.js中:

console.log('Content script loaded and started');

因此,您可以检查页面(F12,控制台选项卡)并查看是否注入了内容脚本。它对你的调试很有帮助。

我不知道你的script.js发生了什么,但是值得考虑你的removeload事件可能在你的任务完成之前发生。

以上是关于Chrome扩展程序:Javascript未加载的主要内容,如果未能解决你的问题,请参考以下文章

javascript Chrome扩展程序将自定义javascript文件加载到标签的DOM中。

Chrome 扩展程序未在 YouTube 的浏览器导航中加载

Chrome 扩展 javascript 功能未定义

Chrome 扩展内容脚本在页面刷新之前未加载

如何从JavaScript中引用属于Chrome扩展程序的文件

Chrome扩展程序中的javascript点击行为问题