我正在寻找一个新的标签"像Panda或Product Hunt Extension这样的扩展程序:用户可以使用我的网站打开一个新标签页,其中包含隐藏的网址。
我已经使用了很棒的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
当我打开一个新标签时,Google Chrome就会占据优势并向我显示一个谷歌搜索页面。
我做错了,我不知道如何/在哪里/为什么
答案 0 :(得分:2)
你完全偏离轨道。您不想打开(简单)新标签,您想要更换"新标签页"。
Daniel's answer正确地解释了为什么您的代码不起作用,但它不会做您想要的。
要替换Chrome的新标签页,您需要使用Override Pages:
"chrome_url_overrides" : {
"newtab": "myPage.html"
},
在myPage.html
内,您可以为远程内容添加<iframe>
。
答案 1 :(得分:1)
那是因为您需要在清单中注册浏览器操作。这是您在清单底部添加浏览器操作的清单。
{
"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