Доступ к элементам заголовка из chrome.declarativeContent - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь сделать расширение Chrome активным на страницах с версиями AMP, используя правило, определенное с помощью chrome.declarativeContent API. Проблема, с которой я сталкиваюсь, заключается в том, что ссылки AMP хранятся в head, и поэтому селекторы CSS PageStateMatcher не могут их найти. Есть ли способ получить доступ к head элементам с помощью этого API, или мне нужно использовать что-то более сложное? Для справки вот документация , на которую я смотрю, и вот мой код:

chrome.runtime.onInstalled.addListener(function() {
  chrome.declarativeContent.onPageChanged.removeRules(undefined, function () {
    chrome.declarativeContent.onPageChanged.addRules([{
      conditions: [
        new chrome.declarativeContent.PageStateMatcher({
          css: ["link[rel~='amphtml']"]
        })
      ],
      actions: [new chrome.declarativeContent.ShowPageAction()]
    }]);
  });
});

1 Ответ

0 голосов
/ 04 мая 2018

Из ответов в комментариях я решил эту проблему, явно проверив селектор в скрипте содержимого, а затем передав его в фоновый скрипт следующим образом:

var ampurl = document.querySelector("link[rel~=amphtml]").getAttribute("href");
if (ampurl.length > 0) {
  chrome.runtime.sendMessage({redirect: ampurl});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...