浏览器默认 Event
浏览器默认事件,如:
- 点击 a:触发导航(navigation)
- 点击 form 的提交按钮 —— submission to the server
- 使用鼠标选中文本 —— 选中文本。
阻止浏览器行为:
event.preventDefault()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