Код расширения Chrome больше не работает, если вкладка неактивна? - PullRequest
2 голосов
/ 03 апреля 2019

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

Этобудет работать, если вкладка не была активной и открытой (предполагаемое / требуемое поведение), но недавно уведомление больше не отправляется, если вкладка не активна.Я не изменил ни один код, поэтому не уверен, что недавнее обновление Chrome изменило поведение API.

Вот мой код:

manifest.json

{
  "name": "New Element Notifier",
  "version": "1.0",
  "description": "Creates notification if new element exists.",
  "permissions": [
    "notifications"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "content_scripts": [
    {
      "matches": ["https://*.website.com/*"],
      "js": ["jquery.min.js", "website.js"],
      "run_at": "document_end"
    }
  ],
 "web_accessible_resources": [
    "*.wav"
  ],
  "manifest_version": 2
}

background.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
  if (request.type == "new-element") {
    chrome.tabs.update(sender.tab.id, {active: true});

    var options = {
      type: "basic",
      title: "New Element",
      message: "A new element exists!",
      iconUrl: "icon.png"
    }

    chrome.notifications.create(options);

    sendResponse({confirm: "tab changed"});
  }
});

website.js

var elementContainer = document.querySelectorAll(".items-container")[0];

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
      chrome.runtime.sendMessage({type: 'new-element'}, function(response) {
        console.log(response.confirm);
      });
    }
  });
});

observer.observe(elementContainer, {characterData: true, childList: true, subtree: true});

Не уверен, что случилось какдолгое время он работал нормально.Любая помощь с этим будет оценена!

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