Расширение Chrome получает выделенный текст
Я ищу способ получить выделенный текст в своем расширении Chrome.
Я хочу, чтобы бывшая. выберите текст в фиде фейсбука, и когда я нажму на значок, он получит его и покажет выделенный текст в моем расширении.
Я получил это до сих пор:
chrome.tabs.executeScript(null,
{code:"alert(window.getSelection().toString());"})
он получает выделенный текст и предупреждает об этом с сообщением в Chrome. Однако я хочу показать его в своем html-всплывающем меню. Я хочу написать это следующим образом:
document.getElementById("output").value = "Selected text here(but how)"
Нужна помощь! и я знаю, что есть другие вопросы по этому поводу, но они не дали мне именно то, что я хочу.
Ответы
Ответ 1
Вы можете использовать последнее выражение, оцениваемое исполняемым кодом, в функции обратного вызова:
chrome.tabs.executeScript( {
code: "window.getSelection().toString();"
}, function(selection) {
document.getElementById("output").value = selection[0];
});
Ответ 2
Вы можете сделать это, используя Расширения сообщений. В принципе, ваша "справочная страница" отправит запрос на ваш сервис. Например, скажем, у вас есть "всплывающее окно", и как только вы нажмете на него, он выполнит "поиск Google", который является вашим сервисом.
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getSelection")
sendResponse({data: window.getSelection().toString()});
else
sendResponse({}); // snub them.
});
Некоторые ссылки
1) Создание расширения chrome, которое выделяет выделенный текст на странице и вставляет его в текстовое поле в popup.html
Или вы можете использовать этот плагин
2) https://chrome.google.com/webstore/detail/view-selection-source/fbhgckgfljgjkkfngcoeajbgndkeoaaj