Skip to content

浏览器默认 Event

浏览器默认事件,如:

  • 点击 a:触发导航(navigation)
  • 点击 form 的提交按钮 —— submission to the server
  • 使用鼠标选中文本 —— 选中文本。

阻止浏览器行为:

  1. event.preventDefault()
  2. on<event> 中返回 false
html
<a href="/" onclick="event.preventDefault()">here</a>

<a href="/" onclick="return false">Click here</a>

事件处理程序中的返回值通常会被忽略,但是on<event> 是个例外

如果我们阻止了第一个 event,后面的 event 也会被阻止,如:

html
<input onmousedown="return false" onfocus="this.value=''" value="Click me" />

因为阻止了 mousedown (按下),所以 onfocus 也不会触发!

passive

addEventListener 的 option。

passive 为 true 向浏览器发出信号,表明处理程序不会调用 event.preventDefault()

这样做的目的是为了提升流畅度。

因为浏览器运行时,需要检查是否有 preventDefault() 进行阻止。
然后你提前告诉它没有,它也就不需要顾虑。

event.defaultPrevented

event.preventDefault() 后,event.defaultPrevented 就为 true