2014-12-27 117 views
1

我正在編寫一個在特定網址中顯示圖標的擴展頁面操作,我想爲此網頁操作添加多個網址。如何在更多網站上顯示我的網頁操作?

background.js文件是這樣的:

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    if (~tab.url.indexOf('URL')) { 
     chrome.pageAction.show(tabId); 
    } 
}); 

如何在多個網站上顯示我的網頁的行爲?

回答

1

如果要檢查多個網址(並顯示您的頁面動作),那麼你有兩個主要選擇:

  1. 您可以使用RegExp s到檢查一次所有的鏈接,就像這樣:

    var exp = /(www\.(site1|site2|site3)\.(com|org)/gi; 
    
    if (exp.test(tab.url)) { 
        chrome.pageAction.show(tabId); 
    } 
    

    ,這將爲www.site1.com,www.site2.com,www.site3.com,www.site1.org等工作欲瞭解更多信息檢查Regular Expressions

  2. 使用for循環檢查您的字符串,它包含了所有的URL,像這樣的Array

    var urls = [ 
        "site1", 
        "site2", 
        "site3", 
        ... 
    ]; 
    
    for (var i=0; i < urls.length; i++) 
        if (~tab.url.indexOf(urls[i])) { 
         chrome.pageAction.show(tabId); 
         break; 
        } 
    

這些都不是你唯一的選擇,另外一個可能是檢查與不止一個if (...),但寫下來有點沉重。

+0

Marco我重複了代碼,只是不知道它的方式是否正確,它正在工作,我使用它? – guto

+0

@guto現在你的代碼是什麼? –

+0

@guto複製代碼是您可以做的最糟糕的事情,因爲它會減慢您的擴展程序,將更多聽衆添加到完全觸發的相同事件中,並執行您只能輕鬆處理其中一個事件的事件。 –