单击工具栏图标时,在新选项卡中打开chrome扩展名
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击工具栏图标时,在新选项卡中打开chrome扩展名相关的知识,希望对你有一定的参考价值。
我希望扩展html在新选项卡中打开,而不是在弹出窗口中打开。现有的扩展名Session Buddy具有我想要复制的确切行为。
问题是,当我点击工具栏图标后,Chrome会立即打开新的扩展标签,当所需的行为(显然)只打开一个标签时。奇怪的是,当我使用https://stackoverflow.com/这样的“网址”时,我只能打开一个标签。
manifest.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 Extension: onclick extension icon, open popup.html in new tab:当我使用事件页面或向
onClicked
添加一个监听器时,单击扩展工具栏图标时没有任何反应。
事实证明,单击工具栏图标时打开选项卡的正确方法是在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.onClicked
是undefined
。要解决这个问题,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'"
}
以上是关于单击工具栏图标时,在新选项卡中打开chrome扩展名的主要内容,如果未能解决你的问题,请参考以下文章
Google Chrome 扩展程序 - 单击工具栏图标时打开新选项卡
上传到 Chrome 应用商店后,扩展程序不会在新选项卡中打开多个链接
chrome调试器:单击控制台中的异常链接会在新选项卡中打开文件,而不是交叉链接到源文件