首页 > 解决方案 > 获取标签 ID 以便在创建后更新

问题描述

当浏览器创建一个新选项卡时,它从空白开始,然后使用about:blank或更新about:newtab。我需要 JavaScript 才能在扩展中更新它。

目前我有;

browser.tabs.onCreated.addListener(handleCreated);
browser.tabs.onUpdated.addListener(handleUpdate);

这使我可以知道何时创建新选项卡以及何时更新它。在此之后,我需要能够用这样的东西再次更新它;

 var TabReplacement = {url: 'https://mycompany.com/newtab.html'};
    browser.tabs.update(TabReplacement);

我只需要能够再次更新选项卡以获得自定义新选项卡,但它不应该影响通过在新选项卡中打开链接等创建的新选项卡。我知道它需要在事件侦听器时触发被激活。

您会立即更新选项卡还是获取选项卡 ID 然后通过选项卡 ID 进行更新?

TLDR;我想要与以下相同的功能:

{
  "name": "My extension",
  ...

  "chrome_url_overrides" : {
    "about:newtab": "https://www.google.com"
  },
  ...
}

包含在 Chrome 清单文件中,但这在 edge 中是不可能的。

提前致谢 :)

标签: javascriptjavagoogle-chromemicrosoft-edge

解决方案


根据我的理解,我猜你是在要求这样的东西,你想使用标签 ID 来更新标签。

function handleCreated(tab) {
var tabReplacement = {url: 'https://mycompany.com/newtab.html'}
    browser.tabs.update(tab.id,tabReplacement);
}

function handleUpdated(tab) {
var tabReplacement = {url: 'https://mycompany.com/newtab.html'};
    browser.tabs.update(tab.id,tabReplacement);
}

如果你想使用它也可以获取标签索引,如下所示:browser.tabs.query({index:1})


推荐阅读