Вы можете сделать это, используя Расширение сообщений . По сути, ваша «фоновая страница» отправит запрос в ваш сервис. Например, допустим, у вас есть «всплывающее окно», и после того, как вы на него нажмете, оно выполнит «поиск Google», который является вашим сервисом.
content_script.js
В вашем скрипте контента нам нужно прослушать запрос от вашего внутреннего номера, чтобы мы отправили ему выделенный текст:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getSelection")
sendResponse({data: window.getSelection().toString()});
else
sendResponse({}); // snub them.
});
background.html
Теперь на фоновой странице вы можете обработать всплывающее событие onclick , чтобы мы знали, что нажали на всплывающее окно. После того, как мы щелкнули по нему, вызывается обратный вызов, и тогда мы можем отправить запрос к скрипту содержимого, используя «Сообщения» для извлечения выделенного текста.
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.tabs.sendRequest(tab.id, {method: "getSelection"}, function(response){
sendServiceRequest(response.data);
});
});
function sendServiceRequest(selectedText) {
var serviceCall = 'http://www.google.com/search?q=' + selectedText;
chrome.tabs.create({url: serviceCall});
}
Как вы видели, я зарегистрировал слушателя в скрипте контента, чтобы мое расширение могло отправлять и получать от него сообщения. Затем, получив сообщение, я обрабатываю его, выполняя поиск в Google.
Надеюсь, вы можете использовать то, что я объяснил выше, и применить его к вашему сценарию. Я просто должен предупредить вас, что код, написанный выше, не проверен, поэтому они могут быть орфографическими или синтаксическими ошибками. Но их легко найти, посмотрев на своего инспектора :)