Как мне сделать расширение chrome, чтобы блокировать значки каждой вкладки? - PullRequest
0 голосов
/ 05 августа 2020

Я пытаюсь заменить все значки с расширением Chrome на какое-то Javascript. Для этого мне нужно найти элемент dom, содержащий значок.

На большинстве веб-сайтов я могу сделать что-то подобное:

document.querySelector('link[rel="icon"]').href = "//data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="

Однако на некоторых веб-сайтах, таких как apple.com, я не могу определить элемент dom, содержащий фавикон, просто просмотрев исходный код страницы, как я могу go заблокировать фавикон в этом случае?

1 Ответ

0 голосов
/ 06 августа 2020

Я понял, что все сделал неправильно. Вместо того, чтобы пытаться заменить элемент html после загрузки страницы, я должен просто заблокировать сетевой запрос, который извлекает значок.

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: ["favicon.ico", "favicon"].includes(details.url.split('/').pop().split('?')[0].split('@')[0]) };
  },
  {urls: ["<all_urls>"]},
  ["blocking"]);
...