代码行为不同的控制台和内容脚本在youtube.com

时间:2019-02-01 21:26:01

标签: javascript google-chrome-extension

我正在尝试使用Chrome扩展程序从youtube.com删除元素。内容脚本的运行(它可以将数据记录到控制台),但不删除元素。但是,如果我将内容脚本的代码复制到开发人员模式控制台中,它将按预期更改页面。尝试使用内容脚本在其他站点上更改DOM时不会发生此问题。修改页面中的其他元素(例如删除整个正文)是可行的。 我使用的setTimeout,以确保在页面加载。 (我知道有更好的方法,但是我想快速模拟一下问题)

elem = document.getElementById("items")
elem.parentNode.removeChild(elem)

这两行删除了推荐的视频,但仅在粘贴到控制台时删除。

清单文件:

{
  "manifest_version": 2,

  "name": "Test",
  "version": "1.0",

  "permissions": ["tabs","storage","declarativeContent","*://*.youtube.com/*"],
  "content_scripts": [
    {
        "matches": ["*://*.youtube.com/*"],
        "js": ["youtubeDomChange.js"]
    }
  ],
}

youtubeDomChange.js:

setTimeout(function(){

    console.log("ran")
    elem = document.getElementById("items")
    elem.parentNode.removeChild(elem)

},6000);

修改1: console.log(element.parentNode)并从内容脚本返回不同的输出,并手动将代码粘贴到控制台。没有错误。 Console output

0 个答案:

没有答案