简单的Chrome扩展程序:在新标签中打开一个网址

问题描述:

我期待创建一个“新标签”扩展程序,如PandaProduct 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利用并显示我一个谷歌搜索页面。

我这样做是错误的,我不知道如何/在哪里/为什么

+0

清单中的“browser_action”字段在哪里? – gui47

+0

单击浏览器操作图标时会触发'chrome.browserAction.onClicked.addListener',而不是以其他方式打开新选项卡。 https://developer.chrome.com/extensions/browserAction – gui47

你完全偏离轨道。你不想打开一个(简单的)新标签,你想替换“新标签页”。
Daniel's answer正确地解释了为什么你的代码不工作,但它不会做你想要的。

要更换Chrome的新标签页,您需要使用Override Pages

"chrome_url_overrides" : { 
    "newtab": "myPage.html" 
    }, 

内部的myPage.html,您可以为远程内容添加。

+0

非常感谢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

+0

这是..不是用户正在寻找。他需要的是一个新的选项卡覆盖。仔细阅读问题。 – Xan