Chrome расширение простой скрипт не вводится - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь сделать первые шаги в написании минимального расширения Chrome и не могу понять, почему оно не выполняет мой clientScript. js.

Это мой манифест. json :

{
    "name": "Sit back, relax and enjoy",
    "version": "0.1",
    "description": "Finds and clicks the +extra channel points button when it is available",
    "permissions": [ "activeTab" ],
    "content_scripts": [
        {
            "matches": [ "https://twitch.tv/*" ],
            "js": [ "contentScript.js" ],
            "run_at": "document_idle"
        }
    ],
    "manifest_version": 2
}

И это скрипт, который я хочу выполнить на страницах, которые соответствуют https://twitch.tv/*:

let intervalTimer

function sibareaen() {
    const btn = document.querySelector('.tw-button.tw-button--success.tw-interactive')
    if (btn) {
        btn.click()
        console.log('At your service - clicked the button for you!')
    }
}

function toggleSibareaen(on) {
    switch (on) {
        case true:
            intervalTimer = setInterval(sibareaen, 750)
            break
        case false:
            clearInterval(intervalTimer)
            break
        default:
            clearInterval(intervalTimer)
    }
}
console.log('At your service - ready to click for you!')
toggleSibareaen(true)

У меня есть оба файла в одной папке:

folder structure

Кроме того, я правильно «установил» расширение:

enter image description here

консоль не показывает ошибок, связанных с расширением.

Чего мне не хватает?

1 Ответ

1 голос
/ 18 января 2020

Если вы перезагрузили вкладку (сценарии содержимого вводятся только при начальной загрузке вкладки, см. this для получения дополнительной информации и обходного пути), вы, вероятно, являетесь жертвой печально известного Google решение скрыть www в адресной строке: если вы войдете в режим редактирования и выберете / скопируете весь текст (или просто дважды щелкните адрес), вы увидите, что URL-адрес сайта на самом деле https://www.twitch.tv/, поэтому ваш манифест . json имеет неправильный шаблон URL, который не соответствует реальному сайту.

Просто используйте обобщенный шаблон, такой как "https://*.twitch.tv/*", который будет соответствовать https://www.twitch.tv/ и https://twitch.tv/ и любому другому поддомену (-ам). ).

PS в качестве шага отладки вы можете проверить, внедряется ли даже сценарий содержимого, посмотрев на селектор контекста на панели инструментов консоли devtools или в devtools -> Sources -> панель сценариев содержимого. А если вы хотите восстановить поведение адресной строки classi c, см. https://superuser.com/a/1498561

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