Chrome扩展程序:启动时打开新标签页

时间:2016-01-05 23:31:51

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

我想要做的是每次Chrome启动时打开一个新标签(chrome:// newtab)。 我的javascript代码运行正常:

chrome.tabs.create({});

每次执行脚本时,新选项卡都会打开,聚焦并将光标放在地址栏中。问题是,代码并不总是执行 - 只有在Chrome启动之前没有运行Chrome进程时才会执行。

我的第二种方法是创建一个事件监听器,这样一旦执行chrome就会知道启动时该怎么做。我尝试过使用这个脚本:

chrome.windows.onCreated.addListener(function (Window window) {
    chrome.tabs.create({});
});

但这根本不起作用。

我的清单看起来像这样:

{
  "manifest_version": 2,
   ...
  "background": {
    "scripts": ["newtab.js"],
    "persistent": false
  }
}

... 因此,实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

function (Window window) {语法无效。

chrome.windows.onCreated.addListener(function() { chrome.tabs.create({}) })将起作用。

但是,这可能不是您想要的,因为这会在使用Menu创建新窗口时产生新标签 - >新窗口。

您可以通过检查最新打开的窗口是唯一的窗口来解决此问题。

chrome.windows.onCreated.addListener(function() {
 chrome.windows.getAll(function(windows) {
  if(windows.length == 1) {
   chrome.tabs.create({})
} }) })`