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

时间:2015-06-19 21:31:18

标签: google-chrome-extension

我正在寻找一个新的标签"像PandaProduct 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就会占据优势并向我显示一个谷歌搜索页面。

我做错了,我不知道如何/在哪里/为什么

2 个答案:

答案 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