欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript_Dom编程艺术第二版(中文)笔记-第七章

程序员文章站 2022-07-12 17:59:54
...

JavaScript_Dom编程艺术第二版(中文)笔记-第七章

  1. 用DOM的方法新增元素:createElement、appendChild、createTextNode。以下是给testdiv元素新增一个p元素。
window. onload=function(){
	var para=document. createElement("p"); 
	var testdiv=document. getElementBytd("testdiv"); 
	testdiv. appendChild(para); 
	var txt=document. createTextNode("Hello world"); 
	para. appendChild(txt);
}
  1. 把placeholder元素插入到图片清单(id是imagegallery)的前面。
var gallery =document.getElementById("imagegallery");
gallery.parentNode.insertBefore(placeholder,gallery);
  1. 自定义insertAfter函数:(因为没这个方法)
function insertAfter(newElement, targetElement){
	var parent=targetElement. parentNode; 
	if(parent. lastchild ==targetElement){
		parent, appendChild(newElement);
	} else{
		parent. insertBefore(newElenent, targetElenent. nextsibling);
	}
}
  1. 由于不同IE版本中使用的XMLHTTP对象也不完全相同,为了兼容所有浏览器,应如下写:
function getHTTPObject(){
	if(typeof XMLHttpRequest=="undefined")
		XMLHttpRequest =function(){
			try { return new Activexobject("Msxml2. XMLHTTP.6.0");}
				catch(e){}
			try{ return new Activexobject("Msxml2. XMLHTTP.3.0");}
				catch(e){}
			try { return new ActivexObject("Msxml2. XMLHTTP");}
				catch(e){}
			return false; 
		}
		return new XMLHttpRequest();
}
  1. XMLHttpRequest对象有许多的方法。其中最有用的是open方法,它用来指定服务器上将要访问的文件,指定请求类型:GET、POST或SEND。这个方法的第三个参数用于指定请求是否以异步方式发送和处理。
function getNewContent()(
	var request=getHTTPObject(); 
	if(request){
		request. open("GET","example. txt", true); 
		request. onreadystatechange=function(){ \\代码中的onreadystatechange是一个事件处理函数,它会在服务器给XWLHttpRequest对象送回响应的时候被触发执行。在这个处理函数中,可以根据服务器的具体响应做相应的处理。
			if(request. readyState ==4){ \\服务器在向XLHttpRequest对象发回响应时,该对象有许属性可用,浏览器会在不同阶段更新readyState属性的值,它有5个可能的值:0表示未初始化、1表示正在加载口2表示加载完毕、3表示正在交互、4表示完成。
			var para=document. createEiement("p"); 
			var txt=document. createTextwode(request.responseText); 
			para.appendChild(txt); 
			document.getElementBytd(' new').appendChild(para);
			}
		}; request. send(nul1);
	} else{
		alert(' Sorry, your browser doesn\'t support XMLHttpRequest'); 
	}		
}
addLoadEvent(getNewContent);

注意:在使用Ajax时,千万要注意同源策略。使用XMLiHttpRequest对象发送的请求只能访问与其所在的HTML处于同一个域中的数据,不能向其他域发送请求。此外,有些浏览器还会限制Ajax请求使用的协议。比如在Chrome中,如果你使用file://协议从自己的硬盘里加载example.txt文件,就会看到“Cross origin requests are only supported for HTTP”(跨域请求只支持HTTP协议)的错误消息。

  1. <abbr>是缩略语。(p、img等的总称)