Сценарий MutationObserver в расширении Chrome не может отловить изменения - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь очистить несколько строк текстовых данных с веб-сайта с расширением Chrome.Я хотел бы обнаружить и зарегистрировать текст в определенном классе div:

<div class="data-table">
  <div class="item-value"> Some text here </div>
  <div class="item-value"> Target text </div>
</div>

manifest.json:

{
   "name": "My Scraper",
   "version": "0.1",
   "manifest_version": 2,
   "icons": {
      "16": "icons/icon16.png",
      "48": "icons/icon48.png",
      "128": "icons/icon128.png"
   },
   "browser_action": {
      "default_icon": "icons/icon19.png"
   },
   "content_scripts": [{
      "run_at": "document_start",
      "matches": ["*://*.tradingview.com/*"],
      "js": [
         "lib/jquery-3.3.1.min.js",
         "content.js"
      ]
   }]
}

Я попытался MutationObserver, чтобы перехватывать и регистрировать изменения.Этот скрипт находится в content.js файле с расширением:

setTimeout(function(){
   var observables = document.querySelectorAll('.item-value');
   console.log('Hello!');

   var observer = new MutationObserver(function(mutations) {
      mutations.forEach(function(mutation) {
         console.log(mutation);
         alert('innerText Changed!')
      });
   });

   var config = { characterData: true, subtree: true, childNodes: true };

   observables.forEach(function(node) {
      observer.observe(node, config);
   });
}, 10000);

Сценарий выполняется через 10 секунд после загрузки страницы, чтобы убедиться, что целевой div загружен.В результате текст «Hello» может быть зарегистрирован, но после этого ничего не происходит.Что я делаю не так?

Div целевого текста часто обновляется, но innerText меняется раз в минуту.Мне нужно поймать изменение на innerText с очень низкой задержкой после этой минуты.Если есть какой-либо вариант, кроме MutationObserver, я с радостью приму его.

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