Скрипт содержимого Chrome не позволяет добавлять EventListeners по умолчанию? - PullRequest
0 голосов
/ 23 мая 2019

Просто чтобы прояснить, я прочитал несколько похожих вопросов
1 2 3 4 5 и т. Д.
ни один из них не имеет отношения к моему.

Как я понял, скрипты содержимого WebAPI , даже если они выполняются в изолированной среде, могут манипулировать DOM страницы и добавлять EventListeners, по крайней мере, так говорят Developer.Chrome и MDN.Тем не менее, у меня возникла ситуация, когда это не похоже на правду.

Вот пример расширения:

manifest.json

{
    "manifest_version": 2,
    "name": "Foo",
    "version": "0",
    "permissions":
    [
        "storage",
        "https://steamcommunity.com/*"
    ],
    "content_scripts":
    [ {

        "matches": ["*://steamcommunity.com/groups/*"],
        "js": ["content.js"],
        "run_at":    "document_idle",
        "all_frames": true
    } ]
}

content.js

'use strict';

const butArea = document.querySelector(".grouppage_join_area");

function queueGroup()
{ 
    alert('yay!');
}

if (butArea)
{
    butArea.addEventListener("click", queueGroup, false);
}

Загрузите распакованный и перейдите к https://steamcommunity.com/groups/SteamClientBeta. Нажмите кнопку и без предупреждения.Добавьте EventListener вручную через консоль, и он просто werks .Я пробовал click/onclick свойства тоже, но тот же результат.

Да, я могу ввести свой код на страницу, здесь нет проблем, но я не очень хочу, потому что он должен работать как есть, нет?Иначе - почему бы и нет, что мне не хватает?

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