2010-03-13 98 views

回答

2

要從您訪問的選項卡中獲取選定的文本,您需要使用Extension Messaging來執行此操作。

例如,讓我們做一個簡單的谷歌搜索擴展,在您的內容腳本,你會有這樣的事情:

chrome.extension.onRequest.addListener(function(request, sender, sendResponse) { 
    if (request.method == "getSelection") 
     sendResponse({data: window.getSelection().toString()}); 
    else 
     sendResponse({}); // snub them. 
}); 

現在,假設你要這樣,當你點擊一個browser action,你background page內發生,你需要聽取onclick事件。

chrome.browserAction.onClicked.addListener(function(tab) { 
    chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response) { 
    var selectedText = response.data; 
    chrome.tabs.create({url: 'http://google.com?q=' + selectedText}); 
    }); 
}); 

一旦你點擊這個圖標(瀏覽器操作),你會發現,它會發送到內容腳本的請求,一旦內容腳本接收到的動作,將選定的文本發回它的有效載荷。然後,您可以根據所選內容向Google打開一個選項卡,以搜索結果。

1

如果您只是想打開一個新選項卡,則可以使用帶有URL參數的chrome.tabs.create()。要獲取選定文本,請捕獲mouseup事件並使用window.getSelection()獲取選擇內容。

相關問題