我已经对这个主题进行了大量研究,但仍有些不理解。我正在尝试制作一个简单的Chrome扩展程序。细节并不重要,但基本上当用户在某个网站上点击某个按钮时,页面会被重定向到另一个URL。我只是为了举例子而放了一些虚拟的URL。以下是我的代码:
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(在另一个Stack Overflow问题中找到了这个,不太确定它是如何工作的)
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");
}
当我点击适当的按钮时,文本会被记录到控制台上,所以我知道我正在做一些正确的事情。然而,我猜测我实际上没有将脚本注入页面中,这就是为什么我的页面没有重定向的原因。任何帮助都将不胜感激!
script.js
代码放在contentscript.js
中即可。页面级注入仅在需要绕过上下文隔离时才需要,而这在这里并不需要。 - Xan