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

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

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

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

但我还有一个问题:如何使这一行在我打开新选项卡时自动运行?想必我必须将其包装在一个函数中并注册一个事件处理程序,但我一直无法找到更准确的信息。


编辑:

Chromium 似乎明确防止篡改“新标签”页面。我通过进行以下更改来调试灰原哀的解决方案:

  1. 在manifest.json中:

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

    var mv = document.getElementById("most-visited");
    if (mv) mv.remove(); else window.alert("test");
    

并重新加载扩展。当我打开新标签时,缩略图仍然出现。然而,当我刷新另一个页面时,显示了一个消息框,上面写着“test”。

最佳答案

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

    list .json

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

    内容.js

    document.getElementById("most-visited").remove();
    
  2. 使用Programmatic injection 。您可以通过chrome.tabs.onCreated监听新标签页打开事件,检查tab url并确定是否调用chrome.tabs.executeScript

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

关于javascript - 当用户在 Chromium 中打开新选项卡时运行指定的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38947915/

相关文章:

javascript - 将对象推送到现有集合后,检索对象自生成的 _id 值

javascript - 如何使用phonegap和javascript播放本地媒体文件?

javascript - 与开发工具交互,同时使用 .evaluate 抓取 dreamer.js

javascript - 将 Angular-Route 重构为 Angular-UI-Router

javascript - 共享后端和前端输入验证或模块

javascript - 通过 chrome 浏览器扩展调用 C dll

javascript - 跨源请求仅支持协议(protocol)方案 : http, data、chrome、chrome-extension、https

javascript - 使用 Chrome 扩展的 onclick 事件将按钮插入 DOM

javascript - 我可以 console.debug() 并在那里设置 Chrome 开发工具断点吗?

javascript - 使用 Firebug 或替代工具查找定义的 JavaScript 的位置