2011-01-28 64 views
0

我有一個問題得到一個標籤的標籤ID,並在其他選項卡中使用它。問題與得到的標籤ID在Chrome擴展

有一個標籤頁中打開(google.com)我已經放在我的使用內容腳本在google.com上的按鈕。 按鈕應該創建一個標籤,當點擊URL爲「cricinfo.com」。 contentscript.js

$(體).prepend('(打開)

</button><textarea id="followup_text"></textarea>'); 


chrome.extension.sendRequest({"acturl":'http://cricinfo.com',"type":""}); 

chrome.extension.onRequest.addListener(
    function(request, sender, sendResponse) { 
    if(request.greeting=="hello") 
{ 
alert(sender.tab.url); 
sendresponse({farwell:"thanks"}); 
} 
else 
sendresponse({farwell:"not recieved"}); 
}); 

}); 

Background.html

<script type="text/javascript" charset="utf-8"> 


     chrome.extension.onRequest.addListener(
     function(request, sender, sendResponse) { 

     chrome.tabs.create({"url":request.acturl,"selected":false},function(tab){ 

     }); 

    }); 
    chrome.tabs.getSelected(null, function(tab){ 
     chrome.extension.sendRequest(tab.id, {greeting:"hello"},function(response){console.log(response.farwell);}); 
    } 
    }) 

</script> 

現在cricinfo.com重定向到「espncricinfo。 COM」,所以我想顯示的網址,我原來的標籤(即google.com),並把它顯示在文本區域#follow_text。

要執行此操作,我希望google.com的tabID用於在espncricinfo.com上發送來自background.html的請求。擴展程序不允許在內容中使用選項卡。我無法在background.html上使用它。

謝謝。讓我知道我是否不清楚。

+0

因此,與重定向問題?你想在textarea中顯示cricinfo.com或espncricinfo.com嗎?你是爲這個特定的網站建立這個擴展嗎?還是應該在一般情況下工作? – serg 2011-01-28 16:50:04

回答

2

嗯,這裏是一些代碼,但它是一種搖晃的解決方案。訣竅是,當你聽chrome.tabs.onUpdated它已經收到重定向的url(如果沒有重定向它收到直接的url)。

var createdTabId = 0; 
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) { 
    if(tabId == createdTabId && changeInfo.status == "loading") { 
     createdTabId = 0; 

     //tab.url contains redirected or direct url, send it to google tab 
     var tabUrl = tab.url; 
     chrome.tabs.getSelected(null, function(tab){ 
      chrome.tabs.sendRequest(tab.id, {tabUrl: tabUrl}); 
     }); 

    } 
}); 

chrome.tabs.create({"url":"http://cricinfo.com","selected":false},function(tab){ 
    createdTabId = tab.id; 
});