我已经研究过这个话题,但没有点击。我正在尝试制作一个简单的Chrome扩展程序。细节并不重要,但基本上当用户点击某个网站上的某个按钮时,页面会重定向到不同的URL。我已经输入了虚拟URL,仅用于说明。这里是我的代码:为Chrome扩展插入内容脚本不起作用
的manifest.json
{
"manifest_version": 2,
"name": "Blah",
"version": "1.0",
"description": "Blah blah",
"icons": { "16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png" },
"content_scripts": [
{
"matches": ["*://url1.com/*"],
"js": ["contentscript.js"]
}
],
"web_accessible_resources": ["script.js"]
}
contentscript.js(找到另一个堆栈溢出问题,它不能完全确定是如何工作的)
var s = document.createElement("script");
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
的script.js
document.getElementById("id1").addEventListener("click", redirect);
function redirect() {
console.log("Testing!"); // This works!
window.location.replace("url2.org");
}
当我点击相应的按钮时,文本被记录到控制台,所以我知道我在做som正确。不过,我猜测我并没有将脚本实际注入页面,这就是为什么我的页面没有重定向。任何帮助,将不胜感激!
如果你的脚本没有注入,你不会得到控制台日志。所以别的是一个问题。 – Xan
此外,根本不需要使用页面级注入。你可以简单地把你的'script.js'代码放在你的'contentscript.js'中。页面级注入仅用于绕过[上下文隔离](https://developer.chrome.com/extensions/content_scripts#execution-environment),这里不需要。 – Xan