2010-03-13 67 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()获取选择内容。

相关问题