繁体   English   中英

谷歌浏览器扩展打开新标签页

[英]Google chrome extension to open the New Tab page

我正在尝试制作一个简单的 chrome 扩展。 它应该在“Windows 系统托盘 chrome 图标上下文菜单”中添加一个项目“打开新选项卡”(类似于 gmail 扩展程序的检查器加号的工作方式;请参见下面给出的第二张图片)。

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

到目前为止我所做的:

清单文件

{  
  "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"
  ]
}

背景.js

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

背景.html

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

我已经加载了这个扩展。 到目前为止,我的扩展对 chrome 的影响:
1) Chrome 窗口已经打开。 我的图标显示在扩展列表中并且可以点击。 在此处输入图片说明
单击时,将在同一窗口中打开一个“新标签”页面。 这是对的。 (虽然我不需要这个。现在,就让它吧。)

2)Chrome窗口关闭,允许chrome在后台运行。 右键单击 chrome 托盘图标。 我的扩展菜单“打开新标签”显示在菜单中。 在此处输入图片说明
这也是正确的。 单击它时,会创建一个新的 chrome 窗口。 (目前,我还没有检查窗口是否已经存在。那是稍后来的。)。

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

任何帮助表示赞赏。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM