gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:28:40 27 4
gpt4 key购买 nike

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

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

到目前为止我做了什么:

list .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"
]
}

背景.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 窗口已经打开。我的图标显示在扩展列表中并且可以点击。 enter image description here
单击时,将在同一窗口中打开“新标签”页面。这是对的。 (虽然我不需要这个。现在,顺其自然吧。)

2) Chrome窗口关闭,允许chrome在后台运行。右键单击 Chrome 托盘图标。我的扩展菜单“打开新标签”出现在菜单中。 enter image description here
这也是正确的。单击它时,将创建一个新的 chrome 窗口。 (目前,我还没有检查一个窗口是否已经存在。那是稍后出现的。)。

问题是,在打开的新窗口中,chrome 会自动打开“chrome://extensions”URL,而不是“新标签页”页面。这是错误的,我不明白为什么打开扩展页面。我想打开新标签页,我正在传递“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"});
}
});
});

关于javascript - 谷歌浏览器扩展打开新标签页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36786187/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com