Я не могу повлиять на причину ошибки DOM "Отказано в выполнении встроенного обработчика событий". -Расширения Chrome

0

Вопрос

Я часто трачу свое время впустую, читая комментарии на YouTube во время учебы. Поэтому у меня появилась идея, я решил сделать расширение, которое должно было скрыть раздел комментариев. Я нашел идентификатор элемента, сделал простое расширение, но оно не сработало из-за следующей ошибки:

html-файл моего расширения:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Comminator | Youtube Comment Terminator</title>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <button id="main" onclick="hide()">Terminate</button>
    <script type="text/javascript">
        var comments = document.getElementById("comments"); //"comments" is the ID of comments section in youtube
        function hide() {
        comments.style.display = "none";
        }
    </script>
</body>
</html>
Файл Json:

{
    "manifest_version": 2,
    "name": "Comminator",
    "description": "Youtube Comment Hider",
    "version": "1.0",
    "icons": {"128": "icon_128.png"},
    "browser_action": {
        "default_icon": "icon.png",
        "default_popup": "popup.html"
    },
    "permissions": ["activeTab"]
}

Разве мы не способны вмешиваться в стихии ? Разве chrome этого не позволяет ?

1

Лучший ответ

1
  • Похоже, ему не нравится встроенный код onclick="hide()", поэтому вместо этого используйте EventListener
  • существует несколько комментариев с идентификатором=комментарий. Они не могут быть доступны с помощью getElementById

const comments = document.querySelectorAll("[id=comment]"); //"comment" is the ID of each comment in youtube

document.getElementById("main").addEventListener("click", function(e) {
  e.preventDefault(); // in case the button ends up in a form
  comments.forEach(comment => comment.style.display = "none"))
})

В качестве альтернативы просто есть букмарклет:

javascript:(() => document.querySelectorAll("[id=comment]").forEach(comment => comment.style.display = "none"))()

Сделайте закладку и измените URL-адрес на указанный выше, и он скроется, когда вы нажмете на него

2021-10-24 13:42:34

Код не сработал, но я узнал о букмарклетах. Когда я нажимаю на букмарклет, youtube становится пустым и показывает только текст "нет". Может быть, удостоверение было неправильным. Не могли бы вы сами найти и проверить его?.. Однако этот букмарклет не сработал для меня. Комментарии стоят на месте, и я все равно получаю ошибку
Ömer Can

Я обновил код. Все их комментарии имеют идентификатор=комментарий, и вы не можете получить более одного с помощью getElementById
mplungjan

Букмарклет работает и сейчас. Аддон не показал мне никаких ошибок, но и не работал. Меня это устраивает, и спасибо за вашу помощь...
Ömer Can

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................