Chrome应用/扩展程序可以删除页面元素吗?

Chr*_*s S 9 javascript google-chrome-extension

我需要创建一个Chrome扩展程序来操作某些页面上的HTML.

基本上,我需要做的是删除<div class="feedmain">页面内部.我现在能够<div>使用开发人员工具删除它,但是当我重新加载页面时,显然会重新加载该元素,因此我想开发一些自动为我执行此操作的扩展.

所以我想知道它是否可行,以及如何在扩展中完成它的概述.

Mar*_*lli 23

是的,绝对的,这是可能且非常容易的:您需要的只是一个内容脚本,它将被注入该特定页面以便为您删除该元素.

要做你想做的事你需要:

  1. 使用文件创建一个简单的空Chrome扩展程序(请参阅此处的官方指南)manifest.json.
  2. 在中指定"content_scripts"字段manifest.json,并声明要注入的脚本.像这样的东西:

    "content_scripts": [
        {
            "matches": ["http://somesite.com/somepage.html"],
            "js": ["/content_script.js"]
        }
    ]
    
    Run Code Online (Sandbox Code Playgroud)

    看看这里,了解内容脚本的工作原理.

  3. 创建一个content_script.js,将删除该元素.该脚本基本上包含以下两行:

    var element = document.querySelector('div.feedmain');
    element.parentElement.removeChild(element);
    
    Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这对于在页面加载时删除特定站点上的标记非常有用.我必须做的一些小改动,以及其他提示.我不得不在我的清单中添加密钥"manifest_version":2,`,否则Chrome会拒绝它.在将来,这可能会更高,所以检查文档.我还必须将我的脚本和匹配器包装在数组中.`"匹配":["site"]`.最后,我必须为URL路径指定通配符.为`matches`设置根域是不够的.`"匹配":"http://somesite.com/somepage.html/*","再次感谢! (5认同)