javascript - 内联 javascript:了解什么是内联,什么不是更好的 CSP
问题描述
在最基本的层面上,我了解内联 javascript 如下:
<script>prompt()</script>
这不算作内联javascript:
<script src="foo.com/bar.js"></script>
但是,还有其他地方可以使用 javascript,例如:
<button onclick="prompt()">
<form onsubmit="prompt()">
<img onerror="prompt()">
<style>{something "property":"javascript:prompt()"}</style>
javascript 存在的所有其他地方也算作内联javascript吗?
解决这个问题的方法是什么?内联事件处理程序也是一种不好的做法
根据此参考资料,我必须在关闭正文之前注册事件处理程序。例如。我会为页面上的每个元素分配一个特定的 ID,并为每个元素分配 AddEventListener。
为了确保我理解这个想法,假设我有一个表单 - 在正文结束之前,我将包含一个添加事件侦听器的 javascript 文件,以便我的 HTML 看起来像这样:
<body>
<form id="theForm" name="theForm" method="POST"></form>
<script src="eventlisteners.js"></script>
</body>
eventlisteners.js 会这样:
var frm = document.getElementById("theForm");
frm.addEventListener('submit', console.log('foo'))
这个对吗?说每个 HTML 内联事件侦听器都有相应的 addEventListener 参数是否也正确?
解决方案
推荐阅读
- dialogflow-es - 是否可以录制音频然后在 Google Assistant 上播放?
- javascript - 无法获取节点中解码的base64数据的值
- c# - 将大数据表复制到 MS Access 表 C#
- r - 无法在 r 3.5.2 中安装汽车包
- .net - Shopify Multipass 与 .net
- excel - 使用电子邮件在 HYPERLINK 公式中进行连接
- python - 正则表达式选择性地包括分隔符
- c# - 如何在居中位置的图像上写入文本 C#
- c++ - 流式错误:在上一次调用退出之前再次调用 InternetSetStatusCallback
- laravel - 从laravel中间件中的函数返回值