May 22

不同浏览器中的js事件传播

今天看了些不同浏览器种js模型的差异,看的非常头大。下面简短记录一下js中不同浏览器中的事件传播模型。首先,在netscape公司的 navigator中事件是从顶部往下传播的,也就是从window级别一直向下传递到目标地点,这个目标地点的任何上层都可以对事件进行捕获,NN中是 用captureEvent来捕获事件,用releaseEvent来关闭对特定事件的捕获,而向指定目标传递事件则用routeEvent,由于没有 navigator做实验,这些方法暂时都没有实验过。在IE和firefox中则相对好说了,事件直接从目标地向上传播,只要给传递过程中的对象注册事 件处理程序,有事件传到就会触发事件处理程序,可以用cancelBubble方法来停止事件在某个对象上的传播,用fireEvent方法来直接将事件 发送到某个对象上,做了一个实验发现,调用fireEvent后事件是会被发送到指定的对象上,但是之后事件会继续回到调用fireEvent的对象的下 一个对象处继续向上冒泡。