Расширение Chrome getSelection не работает - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь создать расширение Chrome, которое состоит только из кнопки.Когда эта кнопка нажата, она должна создать окно предупреждения, которое содержит выделенную текстовую область на странице.Я не могу заставить его работать.Я могу сделать так, чтобы он предупреждал жестко закодированную строку, но не заставлял ее предупреждать какой-то выделенный текст / выделенную текстовую область на странице.

Вот код JavaScript popup.js :

document.addEventListener('DOMContentLoaded', function() {
test.addEventListener('click', function() {

    var selObj = document.getSelection(); 
    alert(selObj);

  }, false);
}, false);

manifest.json

    {
  "manifest_version": 2,

  "name": "test ",
  "description": "test",
  "version": "1.0",

  "browser_action": {
   "default_icon": "icon.png",
   "default_popup": "popup.html"
  },
  "permissions": [
   "activeTab"
   ]
}

popup.html <</p>

!doctype html>
<html>
  <head>
    <title>Test</title>
    <script src="popup.js"></script>
  </head>
  <body>
    <h1>Test</h1>
    <button id="test">Test</button>
  </body>
</html>

1 Ответ

0 голосов
/ 08 февраля 2019

Вы можете получить выборку, загрузив скрипт на страницу, используя метод executeScript в API вкладок.Возможно, вам придется добавить разрешение tabs в ваш manifest.json.

Чтобы выполнить скрипт, вам сначала нужно получить идентификатор вкладки, вы можете сделать это, используя query изапрос при извлечении активной вкладки в текущем окне.

document.addEventListener('DOMContentLoaded', function() {
    const test = document.querySelector("#test");
    test.addEventListener('click', function() {
        chrome.tabs.query({ currentWindow: true, active: true }, (tabs) => {
            chrome.tabs.executeScript(tabs[0].id, { code: `document.getSelection().toString()` }, (result) => {
                alert(result);
            });
        });
    });
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...