我无法影响“拒绝执行内联事件处理程序”错误的 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 扩展 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法构建poky食谱:/poky/meta/recipes-core/ncurses/ncurses_6.0+20171125.bb:do_install失败