Google Chrome扩展程序可打开“新标签页”页面

时间:2016-04-22 06:11:47

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

我正在尝试制作简单的Chrome扩展程序。 它应该添加一个项目"打开新标签"在' windows系统托盘镀铬图标上下文菜单中' (类似于检查器加上gmail扩展程序的方式;请参阅下面给出的第二张图片。)

当我点击该选项时,chrome应该(检查是否有任何窗口打开。如果是,那么它应该是这样)打开一个新的标签页。如果没有打开窗口,则应该打开一个新的标签页显示新的标签页。

到目前为止我做了什么:

的manifest.json

{  
  "manifest_version": 2,

  "name": "Open New Tab",  
  "description": "This extension open a new tab page",  
  "version": "1.0",  
  "browser_action": {  
      "default_icon": "icon.png"
  },  
  "background":{  
    "scripts":["background.js"],  
    "persistent": false
  },  
  "permissions": [
    "background",
    "activeTab"
  ]
}

background.js

chrome.browserAction.onClicked.addListener(function(tab)   
{  
    chrome.tabs.create({ url: "chrome://newtab" });  
}
);

background.html

<html>
<head>
<script>
chrome.browserAction.onClicked.addListener(function(window)                         
{  
    chrome.windows.create({url: "chrome://newtab", type: "normal"});  
}
);
</script>
</head>
</html>

我已加载此扩展程序。 到目前为止我的延伸对铬的影响:
1)Chrome窗口已经打开。 我的图标显示在扩展程序列表中,可以点击。enter image description here
 点击后,会出现一个新标签页&#39;页面在同一窗口中打开。这是对的。 (虽然我不需要这个。现在,让它成为。)

2)Chrome窗口关闭,允许chrome在后台运行。右键单击铬托盘图标。我的扩展程序菜单&#39;打开新标签页&#39;显示在菜单中。enter image description here
这也是正确的。单击它时,将创建一个新的chrome窗口。 (目前,我还没有检查窗口是否已经存在。这是后来的。)。

问题是,在打开的新窗口中,而不是“新标签页”&#39;页面,chrome会自动打开“chrome:// extensions&#39; URL。这是错误的,我无法理解为什么扩展页面正在打开。我想打开新的标签页,我正在传递&#39; chrome:// newtab&#39; URL。如何从此处打开新标签页?当我从桌面图标或Windows开始菜单启动Chrome时,Chrome可以正常工作。所以,问题似乎与我的代码有关。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

收听chrome.windows.onCreated事件,右键单击chrome tray图标,将启动一个新窗口,然后您可以在事件处理程序中创建一个新选项卡。

chrome.windows.onCreated.addListener(function(window) {
    chrome.windows.getAll(function(windows) {
        if (windows.length === 1) {           
            chrome.tabs.create({windowId: window.id, url: "chrome://newtab"});
        }
    });
});