简单的Chrome扩展程序:在新标签中打开一个网址
我期待创建一个“新标签”扩展程序,如Panda或Product Hunt Extension:用户可以打开一个带有隐藏网址的我的网站的新选项卡。简单的Chrome扩展程序:在新标签中打开一个网址
我产生我的包与真棒Extensionizr,这里是我的manifest.json
:
manifest.json的
{
"name": "My app",
"version": "0.0.1",
"manifest_version": 2,
"description": "My awesome app",
"homepage_url": "http://myapp.com",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_locale": "en",
"background": {
"scripts": [
"src/bg/background.js"
],
"persistent": false
},
"permissions": [
"tabs",
"http://myapp.com/*"
]
}
我background.js
来自this answer,这个问题似乎真的相似。
background.js
chrome.browserAction.onClicked.addListener(function(activeTab) {
var newURL = "http://myapp.com";
chrome.tabs.create({ url: newURL });
});
,当我尝试从扩展设置运行后台页面我仍然得到这个错误:Uncaught TypeError: Cannot read property 'onClicked' of undefined
当我打开一个新标签,谷歌Chrome利用并显示我一个谷歌搜索页面。
我这样做是错误的,我不知道如何/在哪里/为什么
你完全偏离轨道。你不想打开一个(简单的)新标签,你想替换“新标签页”。
Daniel's answer正确地解释了为什么你的代码不工作,但它不会做你想要的。
要更换Chrome的新标签页,您需要使用Override Pages:
"chrome_url_overrides" : {
"newtab": "myPage.html"
},
内部的myPage.html
,您可以为远程内容添加。
非常感谢Xan! – tchret
那是因为你需要注册清单中的浏览器操作。这是您的清单,并在底部添加浏览器操作。
{
"name": "My app",
"version": "0.0.1",
"manifest_version": 2,
"description": "My awesome app",
"homepage_url": "http://myapp.com",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_locale": "en",
"background": {
"scripts": [
"src/bg/background.js"
],
"persistent": false
},
"permissions": [
"tabs",
"http://myapp.com/*"
],
"browser_action": {}
}
下面是浏览器操作的文档:https://developer.chrome.com/extensions/browserAction
这是..不是用户正在寻找。他需要的是一个新的选项卡覆盖。仔细阅读问题。 – Xan
清单中的“browser_action”字段在哪里? – gui47
单击浏览器操作图标时会触发'chrome.browserAction.onClicked.addListener',而不是以其他方式打开新选项卡。 https://developer.chrome.com/extensions/browserAction – gui47