当用户在Chromium中打开新选项卡时运行指定的函数

时间:2016-08-15 00:41:03

标签: javascript google-chrome-extension google-chrome-devtools chromium

我想从Chromium的“新标签页”中删除访问量最大的缩略图。在检查了该页面的内容之后,我确定以下JavaScript行可以解决这个问题:

document.getElementById("most-visited").remove();

但是我还有一个问题:当我打开一个新标签时,如何使这条线自动运行?大概我必须将它包装在一个函数中并注册一个事件处理程序,但我一直无法找到更准确的信息。

修改

似乎Chromium明确禁止篡改“新标签页”。我通过进行以下更改调试了Haibara Ai的解决方案:

  1. 在manifest.json中:

    "matches": [
        "*://*/*"
      ],
    
  2. 在content.js中:

    var mv = document.getElementById("most-visited");
    if (mv) mv.remove(); else window.alert("test");
    
  3. 重新加载扩展程序。当我打开一个新标签时,缩略图仍然出现。然而,当我刷新一个不同的页面时,会显示一个显示“test”的消息框。

1 个答案:

答案 0 :(得分:2)

  1. 使用Content scripts。至于匹配newtab网址,请参阅What is the URL of the google chrome new tab page and how to exclude it from manifest.json

    的manifest.json

    {
      "name": "Redesign",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "*://*/_/chrome/newtab*"
          ],
          "js": [
            "content.js"
          ]
        }
      ]
    }
    

    content.js

    document.getElementById("most-visited").remove();
    
  2. 使用Programmatic injection。您可以通过chrome.tabs.onCreated收听新标签页打开的活动,查看标签网址并确定是否致电chrome.tabs.executeScript

  3. Customize new tab page。您还可以自定义自己的新标签页,而不会访问最多的部分。