89241846 2019-06-30
1 - 冒泡型事件
事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发
IE 5.5 div -> body -> document
IE 6.0 div -> body -> document
Mozila 1.0 div -> body -> html -> document -> window
2.捕获型事件:事件从最不精确的对象(document对象)开始触发,然后到最精确.
3.DOM事件流:同时支持两种事件模型:捕获型事件和冒泡型事件,但是,捕获型事件先发生,两种事件流会触及DOM中
的所有对象,从document对象开始,也在document对象结束。
DOM事件模型最独特的性质是:文本节点也触发事件.IE不会
支持W3C标准的浏览器在添加事件时用addEventListener(event,fn,useCapture)方法
第3个参数useCapture是一个Boolean值,用来设置事件是在事件捕获时执行,还是事件冒泡时执行。
而不兼容W3C的浏览器(IE)用attachEvent()方法,此方法没有相关设置,不过IE的事件模型默认是在事件冒泡时执行的,也就是在useCapture等于false的时候执行,所以把在处理事件时把useCapture设置为false是比较安全,也实现兼容浏览器的效果。
作用:XMLHttpRequest对象用于在后台与服务器交换数据
简介:XMLHttpRequest是开发者的梦想,因为可以
在不重新加载页厕所情况下更新网页
在页面已加载后从服务器请求数据
在页面已加载后从服务器接收数据
在后台向服务器发送数据
创建XMLHttpRequest对象的语法:
xmlhttp = new XMLHttpRequest();
若是IE5或IE6,则使用
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
实例:
<html> <head> <script type="text/javascript"> var xmlhttp; function loadXMLDoc(url) { xmlhttp=null; if (window.XMLHttpRequest) {// code for IE7, Firefox, Opera, etc. xmlhttp=new XMLHttpRequest(); } else if (window.ActiveXObject) {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",url,true); xmlhttp.send(null); } else { alert("Your browser does not support XMLHTTP."); } } function state_Change() { if (xmlhttp.readyState==4) {// 4 = "loaded" if (xmlhttp.status==200) {// 200 = "OK" document.getElementById('A1').innerHTML=xmlhttp.status; document.getElementById('A2').innerHTML=xmlhttp.statusText; document.getElementById('A3').innerHTML=xmlhttp.responseText; } else { alert("Problem retrieving XML data:" + xmlhttp.statusText); } } } </script> </head> <body> <h2>Using the HttpRequest Object</h2> <p><b>Status:</b> <span id="A1"></span> </p> <p><b>Status text:</b> <span id="A2"></span> </p> <p><b>Response:</b> <br /><span id="A3"></span> </p> <button onclick="loadXMLDoc('/example/xdom/note.xml')">Get XML</button> </body> </html>