如何为Chrome创建扩展程序,以在工具栏上添加图标,当您单击它时,它会打开一个带有某些本地网页的新标签页(例如:f.html)?
我看到了这个问题,但并没有真正解释我应该在清单文件中添加什么...
Answers:
对于较新的Chrome应用,情况并非如此。
具有manifest_version:2的较新的chrome应用程序需要使用以下选项卡打开:
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会触发吗?由于某种原因,目前对我不起作用,一定是一些简单的即时消息丢失了。
好吧,在扩展名docs中,它在manifest中指出,您需要包括“ tabs”作为其权限。他们以相同的方式解释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"
],
}
在后台页面中,您将监听浏览器操作上的鼠标单击事件。
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-中
chrome.tabs.create需要“标签”的许可。
只需使用扩展名中的window.open,无需任何许可。并且代码更短。我建议这种解决方案。
window.open(url,'_blank');