要从您访问的标签中获取选定的文本,您需要使用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 搜索结果。