2011-11-08 158 views
0

我已經使用以下代碼打開Rich Snippet測試工具中的當前頁面URL。 問題是,擴展工作正常,第一次點擊並打開URL。但是,如果測試頁面URL當前處於打開狀態,則不允許打開另一個頁面。Chrome擴展程序無法工作

我的要求是在此擴展的幫助下,一次在測試工具中打開多個頁面。 但是我一次只能打開一個。

我的清單文件:

{ 
    "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'); 
    }); 
    }); 

回答

1

這是因爲你給的窗口(標籤)的名稱。這意味着每次都使用相同的選項卡。這就像標籤的標識符。

您可以通過刪除名字解決這個問題:

window.open(richurl); 
1

Chrome不理解「_newtab」,只考慮它作爲標籤的ID,這樣它會打開下一個相同的標籤。使用「_blank」通常會打開新的選項卡,但取決於用戶的設置(它也可能打開新窗口)。

如果你想要新標籤,你應該看看Chrome擴展標籤API。那裏有一個create method。它需要你爲擴展設置權限。

+0

創建方法將在製表符的結尾處創建制表符,我需要該製表符在輸入選項卡旁邊打開。 它可以通過刪除_newtab來完成。 謝謝 –

+0

@Chaitneya'create()'將'index'作爲參數,允許您設置選項卡的位置。 – Lycha