hax*_*erz 9 javascript events html5
内联事件处理程序被认为是一种不好的做法吗?
例如: <button onclick=someFunction()>Click me!</button>
如果是这样,使用内联事件处理程序有什么缺点?
Utk*_*nos 14
这是一个坏主意,因为......
1)长期以来,人们明确强调内容,风格和剧本之间的明确区分.使用JS混淆HTML并不符合这一点.
2)更重要的是,你对事件的控制要少得多.特别:
你可以只用DOM-zero事件绑定每种事件(这是内联的事件),所以你不能有两个click事件处理程序
如果事件是内联指定的,则JS被指定为字符串(属性值始终为字符串)并在事件触发时进行评估.评价是邪恶的.
你将面临必须引用命名函数.这并不总是理想的(事件处理程序通常采用匿名函数)并且对需要全局的函数有影响
简而言之,通过专用addEventListenerAPI或jQuery等集中处理事件.
除了已接受的答案中表达的语义和其他意见之外,所有内联脚本都被视为漏洞和高安全风险。任何希望在现代浏览器上运行的网站都应该通过元属性或标头设置“内容安全策略”(CSP) 属性。
这样做与所有内联脚本和样式不兼容,除非明确允许将它们排除在外。虽然 CSP 的目标主要是防止持久的跨站点脚本 (xss) 威胁(其中内联脚本和样式是 xss 的载体),但它不是当前浏览器中的默认行为,但将来可能会发生变化。
| 归档时间: |
|
| 查看次数: |
2484 次 |
| 最近记录: |