仅在Chrome扩展程序中的特定锚点上插入代码

时间:2019-07-26 04:25:06

标签: javascript google-chrome-extension

我有一个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;

0 个答案:

没有答案