gpt4 book ai didi

google-chrome-extension - 单击工具栏图标时在新选项卡中打开 chrome 扩展程序

转载 作者:行者123 更新时间:2023-12-05 01:43:59 36 4
gpt4 key购买 nike

我希望扩展 HTML 在新选项卡中打开,而不是在弹出窗口中打开。一个现有的扩展,Session Buddy ,具有我想要复制的确切行为。

问题是,当我点击工具栏图标后,Chrome 会不停地打开新的扩展标签,而所需的行为(显然)是只打开一个标签。奇怪的是,当我使用“网络 URL”(例如 https://stackoverflow.com/)时,我只能打开一个选项卡。 .

list .json:

{
"manifest_version": 2,
"name": "angular chrome extension boilerplate",
"version": "1.0.0",
"background": {
"scripts": ["background.js"],
"persistent": true
},
"permissions": [
"activeTab",
"tabs",
"background"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

background.js:

chrome.tabs.create({ url: chrome.extension.getURL('index.html') });

这个网站上的几个帖子都有类似的问题,但没有一个建议的解决方案对我有用:

最佳答案

事实证明,在单击工具栏图标时打开选项卡的正确方法是将对 chrome.tabs.create() 的调用包装在 onClicked 听众:

修改后的background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({ url: chrome.extension.getURL('index.html'), selected: true });
});

由于 chrome.browserAction.onClickedundefined,最初这将不起作用。为了解决这个问题,one needs to add an empty "browser_action" object to manifest.json .另外,之前使用的持久后台和activeTab权限是不必要的,可以删除:

修改后的 manifest.json:

{
"manifest_version": 2,
"name": "angular chrome extension boilerplate",
"version": "1.0.0",
"browser_action": { },
"background": {
"scripts": ["background.js"],
"persistent": false
},
"permissions": [
"tabs",
"background"
],
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}

关于google-chrome-extension - 单击工具栏图标时在新选项卡中打开 chrome 扩展程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841818/

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