我无法影响“拒绝执行内联事件处理程序”错误的 DOM 原因。 -Chrome 扩展 [重复]

Posted

技术标签:

【中文标题】我无法影响“拒绝执行内联事件处理程序”错误的 DOM 原因。 -Chrome 扩展 [重复]【英文标题】:I can't effect DOM cause of "Refused to execute inline event handler" error. -Chrome Extensions [duplicate] 【发布时间】: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不允许吗?

【问题讨论】:

【参考方案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 没有显示任何错误,但也没有工作。我没问题,感谢您的帮助...

以上是关于我无法影响“拒绝执行内联事件处理程序”错误的 DOM 原因。 -Chrome 扩展 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

播放框架 - 内容安全策略设置不起作用?

do…while循环中无法理解的意外令牌错误

无法在 Greenplum 中使用 DO 执行匿名代码块

无法构建poky食谱:/poky/meta/recipes-core/ncurses/ncurses_6.0+20171125.bb:do_install失败

NOHZ=ON 如何影响 Linux 内核中的 do_timer()?

错误:无法解决:androidx.annotation.annotation:1.1.0:受影响的模块:app