【问题标题】:I can't effect DOM cause of "Refused to execute inline event handler" error. -Chrome Extensions [duplicate]我无法影响“拒绝执行内联事件处理程序”错误的 DOM 原因。 -Chrome 扩展 [重复]
【发布时间】:2021-12-10 05:49:24
【问题描述】:

我经常在学习时阅读 youtube cmets 来浪费时间。所以我有了一个想法,决定做一个扩展来隐藏 cmets 部分。我找到了元素的 ID,做了一个简单的扩展,但它没有工作,导致以下错误:

我的扩展的 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不允许吗?

【问题讨论】:

    标签: javascript html dom google-chrome-extension


    【解决方案1】:
    • 好像不喜欢内联代码onclick="hide()",所以改用eventListener
    • 有多个 id=comment 的 cmets。 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"))()
    

    做一个书签,把网址改成上面的,点击就隐藏了

    【讨论】:

    • 代码不起作用,但我了解了书签。当我单击小书签时,youtube 变为空白,仅显示文本“无”。可能是ID错了。你介意自己找到并测试它吗?虽然这个书签对我不起作用。评论停滞不前,我仍然收到错误
    • 我更新了代码。他们的 cmets 都有 id=comment,你不能用 getElementById 得到多个
    • 书签现在可以使用了。 Addon 没有显示任何错误,但也没有工作。我没问题,感谢您的帮助...
    猜你喜欢
    • 2021-07-26
    • 2022-01-18
    • 2020-09-26
    • 2018-12-03
    • 2020-02-27
    • 2016-07-19
    • 2015-11-10
    • 2020-09-21
    • 1970-01-01
    相关资源
    最近更新 更多