2016-06-07 55 views
0

我想建立一個運行下面的Chrome擴展程序,當我點擊popup.html按鈕:如何爲所有標籤重複此代碼? Chrome擴展

  1. 獲取並通過一個
  2. 讀取每個標籤一個的網址,如果URL啓動用「https://www.linkedin.com/company/」,在「company /」之後立即獲取 公司ID。 (網址通常是這樣的: https://www.linkedin.com/company/164233?trk=prof-exp-company-name所以 在這種情況下,例如,我想獲得「164233」),然後 應該創建一個新的標籤具有以下網址: https://www.linkedin.com/vsearch/p?f_CC=164233

以下代碼成功地做我想要的只是當前選項卡。我希望擴展程序可以爲所有標籤頁做點擊'btn2'。

我該如何重複?用for循環?謝謝!

document.addEventListener('DOMContentLoaded', function(){ 
     document.getElementById('btn2').addEventListener('click', printurl) 
}); 

printurl = function(){ 
chrome.tabs.query({ 
    active: true, 
    lastFocusedWindow: true 
}, function(tabs) { 


    // and use that tab to fill in out title and url 
    var query = tabs[0].url; 
    var companyId = query.slice(33, 41); 
    var companyId2 = companyId.replace(/\D/g, ''); 

    saeurl = 'https://www.linkedin.com/sales/search?pivotType=EMPLOYEE&pivotId=' + companyId2; 
    chrome.tabs.create({url: saeurl, selected:false}) 

}) 
} 

回答

0

如果我已經理解了您要做的正確操作,則需要進行一些更改。首先,如果你想要所有的標籤,那麼你不想查詢activelastFocusedWindow

一旦你解決了這個問題,你應該得到所有的標籤,這時你需要爲tabs中的每個標籤完成你的邏輯。

chrome.tabs.query({}, function(tabs) { 

    for(var i = 0; i < tabs.length; i++) { 
     // and use that tab to fill in out title and url 
     var query = tabs[i].url; 
     var companyId = query.slice(33, 41); 
     var companyId2 = companyId.replace(/\D/g, ''); 

     saeurl = 'https://www.linkedin.com/sales/search?pivotType=EMPLOYEE&pivotId=' + companyId2; 
     chrome.tabs.create({url: saeurl, selected:false}) 
    } 

}) 

還值得考慮一下你用來從URL中提取公司ID的邏輯。你當前的邏輯依賴於ID的長度,這可能會改變。看看this gist,它顯示了幾種不同的解析URI的方法。