【问题标题】:What is the difference of placing the event listener on the HTML tag versus the BODY tag?将事件侦听器放置在 HTML 标记与 BODY 标记有什么区别?
【发布时间】:2010-07-24 23:42:55
【问题描述】:

我正在查看 google.com 的源代码并看到:
<!doctype html><html onmousemove="google&&google.fade&&google.fade(event)">

我不知道 HTML 标签可以接受事件监听器。将事件侦听器放在 HTML 标签和 BODY 标签上有什么区别?事件冒泡有什么不同吗?

【问题讨论】:

  • 在身体上它不能在任何地方冒泡。
  • @James Black:这不是真的,在<body> 之后它仍然冒泡到document :)
  • @Nick Craver - 好点,我忘了。我倾向于停在body标签上。

标签: javascript html javascript-events


【解决方案1】:

我几天前看到了这个,并没有多想。但一个原因可能是“性能”,就像谷歌一样:)

对于极慢的客户端,<html> 将首先被解析,如果用户移动鼠标,onmousemove 处理程序将准备好触发。如果<head> 中的内容过多,这可能更可取,因为<body> 上的onclick 可能需要一些时间来注册,因为必须先下载和解析所有头部内容。

实际上这已经发生了,在<body> 出现之前大约有2KB 的内容。

【讨论】:

  • 我应该把所有的body事件监听器都移到HTML标签吗?
  • onload 除外。那,我相信根本不会被发送到html。
  • 其实那是错误的,并不是所有的事件都适用于html元素。就像更改对正文没有影响一样,它也不适用于 html。并且加载基于本地测试不起作用,但我找不到任何支持文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-12
  • 2011-12-04
  • 1970-01-01
  • 2023-03-12
  • 2011-09-30
  • 1970-01-01
  • 2021-10-09
相关资源
最近更新 更多