Aison
@Aison

Как сделать выполнение js только на доменах из списка?

Делаю простенькое расширение для хрома. Возникала проблема, расширение работает на всех сайтах, а нужно, чтобы js скрипт срабатывал на определённых доменах, которые скрипт будет получать из txt-файла по какому-нибудь адресу.

Знаю, что можно заюзать манифест расширения, но там неудобно будет вносить новые домены, а у себя на сервере всё же проще править текстовик, чем каждый раз делать обновку расширению.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@GrayHorse
Напиши юзерскрипт вместо расширения.

Вот пример:
// ==UserScript==
// @name        Toster Example
// @match       https://qna.habr.com/*
// @match       https://toster.ru/*
// @grant       GM.xmlHttpRequest
// @connect     https://example.com
// ==/UserScript==

!async function() {
    console.log("userscript start");
    const response = await new Promise((resolve, reject) => {
        GM.xmlHttpRequest({
            method: "get",
            url: "https://example.com",
            responseType: "text",
            onload: resolve,
            onerror: reject,
        });
    });
    console.log("response:", response);

    const {response: text} = response;
    console.log("text:", text);
}();


Запускается на каждой странице Тостера (см @match), и успешно логирует в консоль содержание https://example.com несмотря на CORS.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы