我有一个Chrome扩展程序,该扩展程序仅适用于页面上的特定锚点。
我尝试将锚点放置在manifest.json的“ content-scripts”属性中的“ matches”字段下。这似乎使代码根本无法运行。当前,我可以通过在if (location.hash === 'anchor')
侦听器中使用onhashchange
来启用它,但是当选择另一个锚点时,我不能禁用它。
这会导致其他锚点处的其他元素被弄乱。除非选择了不同的锚点,否则这些元素将无法查看。
manifest.json:
{
"manifest_version": 2,
"name": "Test Chrome Extension",
"version": "0.1",
"content_scripts": [
{
"matches": [
"https://wpga.myschoolapp.com/app/student"
],
"css": ["style.css"],
"js": ["jquery-3.4.1.min.js", "content.js"],
"run_at": "document_end"
}
],
"permissions": [
"cookies",
"http://*/*",
"https://*/*",
"storage"
],
"background": {
"scripts": ["background.js"],
"persistent": false
}
}
和content.js:
function locationHashChanged() {
if (location.hash === 'anchor') {
var div = document.createElement("div");
div.appendChild(document.createTextNode("test123"));
document.body.appendChild(div);
}
else { //some code to disable injected code?
//I wish to have the div and test123 text disappear
}
}
window.onhashchange = locationHashChanged;