0

I oftenly waste my time by reading youtube comments while studying. So i came with an idea, decided to make an extension which was gonna hide the comments section. I found the ID of element, made a simple extension but it didn't work cause of the following error:

My extension's html file:

<!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 File:
{
    "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"]
}

Are we not able to interference with the elements ? Doesn't chrome allow it ?

Ömer Can
  • 13
  • 3

1 Answers1

1
  • It seems to not like the inline code onclick="hide()", so use eventListener instead
  • there are multiple comments with id=comment. They cannot be accessed by 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"))
})

Alternatively just have a bookmarklet:

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

Make a bookmark and change the URL to the above and it will hide when you click it

mplungjan
  • 169,008
  • 28
  • 173
  • 236
  • The code didn't work but i learned about bookmarklets. When i click the bookmarklet, youtube goes blank and only shows a text "none". Maybe the ID was wrong. Would you mind to find and test it yourself... This bookmarklet didn't work for me though. Comments stand still and i still get error – Ömer Can Oct 24 '21 at 13:33
  • I updated the code. Their comments all have id=comment and you cannot get more than one with getElementById – mplungjan Oct 24 '21 at 13:43
  • Bookmarklet works now. Addon didn't show me any errors but not working either. Im okay with that and thanks for your help... – Ömer Can Oct 27 '21 at 02:08