Chrome扩展程序无效

时间:2011-11-08 12:06:15

标签: javascript html google-chrome-extension manifest

我使用以下代码在Rich Snippet Testing Tool中打开当前页面网址。 问题是,首次单击时扩展程序正常工作并打开URL。但是,如果测试页面URL当前处于打开状态,则不允许打开另一个页面。

我的要求是借助此扩展程序在测试工具中一次打开多个页面。 但我一次只能打开一个。

我的清单文件:

{
  "name": "RS Analyzer",
  "description": "Extension to get current page URL and display its Rich Snippets.",
  "version": "1.4",
  "background_page": "background.html",
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ],
  "icons":{"16": "images/R_icon_16x16.jpeg",
           "48": "images/R_icon_48x48.jpeg",
          "128": "images/R_icon_128x128.jpeg"},
  "browser_action": {
      "default_title": "RS Analyzer",
      "default_icon": "images/icon.jpg"
  }
}

我的背景页面:

chrome.browserAction.onClicked.addListener(function(tab){
    chrome.tabs.getSelected(null,function(tab) {
    var tablink = tab.url;
    var richurl = "http://www.google.com/webmasters/tools/richsnippets?url=" + encodeURIComponent(tablink) + "&view=";
    window.open(richurl,'_newtab');
    });
  });

2 个答案:

答案 0 :(得分:1)

这是因为你给了窗口(标签)一个名字。这意味着每次都使用相同的选项卡。它就像标签的标识符。

您可以通过删除名称来解决此问题:

window.open(richurl);

答案 1 :(得分:1)

Chrome无法理解“_newtab”,它只将其视为标签的ID,因此它会打开下一个标签。使用“_blank”通常会打开新选项卡,但这取决于用户的设置(它也可能会打开新窗口)。

如果您需要新标签,则应该查看Chrome扩展程序标签api。他们有一个create method。它需要您设置扩展程序的权限。