JavaScript高级程序设计23.pdf

document对象作为HTMLDocument的一个实例,它还有一些标准的Document对象所没有的属性,这些属性提供了网页上的一些信息

  //取得文档标题

var title1=document.title;

  //修改文档标题

document.title="New page title";

 

  //取得完整的URL

var url=document.URL;

  //取得域名

var domain=document.domain;

  //取得来源页面的URL

var referrer=document.referrer;

如果document.URL等于http://www.wrox.com/WileyCDA/,那么document.domain等于www.wrox.com。

在这3个属性中,只有domain是可以设置的,由于安全方面的考虑,只能将domain设置为URL中包含的域

  //假设页面来自p2p.wrox.com域

document.domain="wrox.com";

由于跨域安全限制,来自不同子域的页面无法通过JavaScript通信,而通过将每个页面的document.domain设置为相同的值,这些页面就可以互相访问对方包含的JavaScript对象了

如果浏览器中的document.domain一开始是松散的,就不能再将其设置为紧绷的

  //假设页面来自p2p.wrox.com域

document.domain="wrox.com";  //成功

document.domain="p2p.wrox.com";  //出错

查找元素

//未找到则返回null,多个id值相同则返回第一次出现的元素

getElementById()

IE怪癖:IE8及较低版本不区分ID大小写,name特性与给定ID匹配的元素也会被返回

//返回包含零个或者多个元素的NodeList 

getElementsByTagName()

在HTML中则返回HTMLCollection对象,可以通过方括号和item()方法来访问

HTMLCollection还有一个方法叫做namedItem(),通过元素的name特性取得集合中的项

<img src="myimage.gif" name="myImage">;

var images=document.getElementsByTagName("img");

var myImage=images.namedItem("myImage");

var myImage=images.namedItem["myImage"];  //对命名的项

getElementsByTagName("*");  //按照出现的顺序取得所有元素

getElementsByName()

返回带有给定name特性的所有元素,最常用的情况是取得单选按钮

特殊集合

document.forms,包含文档中所有<form>元素

document.images,包含文档中所有<image>元素

document.links,包含文档中所有带href特性的<a>元素

DOM一致性检测

由于DOM分为多个级别包含多个部分,有时候需要检测浏览器实现了DOM的哪些部分

document.implementation属性就是为此提供了相应信息和功能的对象,DOM1级只为document.implementation规定了一个方法,即hasFeature(),它接收2个参数:要检测的DOM功能的名称及版本号,如支持,则返回true

var hasXmlDom=document.implementation.hasFeature("XML","1.0");  //并不可靠

文档写入

将输出流写入到网页中的能力write()、writeIn()接收一个写入到输出流中参数,write()会原样写入,writeIn()会在字符串的末尾添加换行符(\n);还可以使用它们动态地添加外部资源,如JavaScript文件,

注意<\/script>要添加转义符,

如果是在网页加载好了以后调用write()则会重写整个网页

方法open()和close()分别用于打开和关闭网页的输出流

严格型XHTML文档不支持文档写入

posted @ 2014-05-26 02:40  庄昌宽  阅读(194)  评论(0编辑  收藏  举报