2

Document

  • 文档子节点

    • document.documentElement 始终指向HTML页面中的<html>元素

    • document.body 始终指向<body>元素

    • document.title 包含着<title>元素中的文本


  • 文档信息

    • document.URL 取得地址栏中显示的URL

    • document.domain 只包含页面的域名

    • document.referrer 保存链接到当前页面的那个页面的URL
      URL、domain、referrer三个属性中,只有domain可以设置值。URL与domain是相互关联的。但是由于安全限制,只能设置为URL中包含的域。

    【笔试题出现过跨域问题
    来自不同子域的页面无法通过javascript通信,而通过将每个页面的document.domain设置为相同的值,这些页 面就可互相访问对方的javascript对象。
    关于跨域问题可查看 http://www.cnblogs.com/2050/p/3191744.html (js中几种实用的跨域方法原理详解)
    http://www.cnblogs.com/rainman/archive/2011/02/20/1959325.html (JavaScript跨域总结与解决办法)
    除此之外,如果域名一开始是松散的,则不能再设置为紧绷的。例如:

    //假设页面来自于 test.segmentfault.com 域
       document.domain = "segmentfault.com"; //loose松散的(成功)
       document.domain = "test.segmentfault.com"; //tight紧绷的(失败!报错)
    

  • 查找元素

    • getElementById("id")
      其中参数id大小写区分。若有多个元素ID值相同,只返回文档中第一次出现的元素。

    【IEbug】:若有哪个表单元素的name值与参数id相同,且该元素位置在id元素之前,则IE会返回表单元素。 【解决方案:不让表单中的name特性与其他元素ID相同】

    • getElementsByTagName()
      返回一个HTMLCollection对象(是一个“动态”集合)

    【注意:因为返回的是一个集合,所以是getElementsByTagName】

       //获取所有元素
       var allElements = document.getElementsByTagName("*");
       //获取所有图像元素
       var images = document.getElementsByTagName("img");
       var src = images[0].src;; // 第一个图像元素的src特性
       var src = images.item(0).src; //也是第一个图像元素的src特性
       //假设有一个图像元素为
       <img src="myimage.jpg" name="myImage">
       //可以通过以下两种方式来获取该元素
       var myImage = images.namedItem("myImage");
       var myImage = images["myImage"];
    
    • getElementsByName()
      只有HTMLDocument类型才有的方法。返回带有给定name特性的所有元素


  • 特殊集合

    都是HTMLCollection对象。

    • document.images 包含所有<img>元素

    • document.links 包含所有带href特性的a元素

    • document.anchors 包含所有带name特性的a元素

    • document.forms 包含所有<form>元素


  • 文档写入

    • write() 原样写入到输出流

    • writeln() 与write()相同,多了一个换行符
      //可以动态包含外部资源。但需要注意转义字符使用,以免字符串解释错误。

    //如果在文档加载结束后再调用document.write(),输出的内容将会重写整个页面。

       
       <script>
           document.write("<script type=\"text/javascript\" src=\"test.js\">"+ "<\/script>");
       </script>
       
    
    • open() 打开网页输出流

    • close() 关闭网页输出流
      若是在页面加载期间使用write或writeln方法,则无需用到open和close方法


lsxj
1k 声望92 粉丝

因为热爱,所以执着。