【发布时间】:2012-12-26 17:17:51
【问题描述】:
如何为 Chrome 创建一个扩展程序,将一个图标添加到工具栏,当您单击它时,它会打开一个带有一些本地网页的新选项卡(例如:f.html)?
我看到了this question,但它并没有真正解释我应该在清单文件中添加什么...
【问题讨论】:
标签: google-chrome google-chrome-extension
如何为 Chrome 创建一个扩展程序,将一个图标添加到工具栏,当您单击它时,它会打开一个带有一些本地网页的新选项卡(例如:f.html)?
我看到了this question,但它并没有真正解释我应该在清单文件中添加什么...
【问题讨论】:
标签: google-chrome google-chrome-extension
好吧,在extensions docs 中,它在manifest 中声明,您需要包含“标签”作为其权限。他们解释 hello world 应用程序的方式相同:
清单文件:
{
"name": "My Extension",
"version": "1.0",
"description": "Opens up a local webpage",
"icons": { "128": "icon_128.png" },
"background_page": "bg.html",
"browser_action": {
"default_title": "",
"default_icon": "icon_19.png"
},
"permissions": [
"tabs"
],
}
在background page 中,您在浏览器动作上监听鼠标点击事件。
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.create({'url': chrome.extension.getURL('f.html')}, function(tab) {
// Tab opened.
});
});
正如您在上面所注意到的,您会看到我使用了您在另一篇文章中看到的问题。请注意,这未经测试,但我相信它应该可以工作。
【讨论】:
chrome.tabs不需要这个权限developer.chrome.com/extensions/tabs因为我没有密切关注这个,最近我从chrome.google.com/webstore/detail/inbox-by-gmail-checker/…失去了数百个用户
这不适用于较新的 chrome 应用程序。
较新的 chrome 应用具有 manifest_version: 2 要求标签打开为:
chrome.browserAction.onClicked.addListener(function(activeTab)
{
var newURL = "http://www.youtube.com/watch?v=oHg5SJYRHA0";
chrome.tabs.create({ url: newURL });
});
【讨论】:
"background": { "scripts": [ "background.js" ] }。
tabs.create 用于 onInstalled 在加载基本上只有一个本地 index.html 的解压扩展和一个现在完全打开 index.html 的 background.js 的上下文中触发一个新标签?出于某种原因,这对我现在不起作用,一定是我缺少一些简单的东西。
chrome.tabs.create 需要“tabs”的权限。
只需在扩展中使用 window.open 即可,无需任何许可。并且代码更短。我建议这个解决方案。
window.open(url,'_blank');
【讨论】: