2016-01-05 114 views
0

我想要做的是在Chrome每次启动时打开一个新标签页(chrome:// newtab)。 我的JavaScript代码是工作的罚款:Chrome扩展程序:启动时打开新标签页

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 
    } 
} 

... 因此,这将是实现这一正确的方式?

+0

当你说“只有在没有镀铬工艺镀铬前运行启动”你的意思是当已经有一个镀铬的窗口中打开它不工作,你就会开始一个新的? – Pabs123

+0

只在清单中使用第一个方法和'“persistent”:true',并且使用taskkill杀死所有打开的chrome进程打开了一个新选项卡。再次关闭和打开镀铬(通常)没有。 – Frank

回答

1

function (Window window) {是无效的语法。

chrome.windows.onCreated.addListener(function() { chrome.tabs.create({}) })将改为工作。

但是,这可能不是你想要的,因为当使用菜单 - >新窗口创建新窗口时,这将导致新的选项卡。

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

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

谢谢,我明白了。不,这不是我想要的,而是我的第一步。我现在使用此代码: 'chrome.windows.onCreated.addListener(函数(窗){ \t chrome.tabs.getAllInWindow(window.id,函数(制表符){​​ \t \t如果(制表符[tabs.length- 1] .pinned){ \t \t \t chrome.tabs.create({}); \t \t} \t}); });' ,其完全适用于我。 – Frank

相关问题