第八章 充实文档的内容

<html>
<head>
    <title>第八章 充实文档内容 </title>
</head>
<body>
    <h1>what is Document Object Model</h1>
    <p>the <abbr title="Word wide web Consortium">W3C </abbr>defines the <abbr title="Document Object Model">DoM </abbr>as:</p>
    <blockquote cite="http://www.w3.org/DOM/">
        <P>A platform-and language-neutral interface tha will allow programs and script to dynamically access and update the content,structure and style of documents.
        </P>
    </blockquote>
    <p>It is an<abbr title="Application Programming Interface">API</abbr>tha can be used to navigate <abbr title="HyperText Markup Language">HTML</abbr>and <abbr title="eXtensible Markup Language">XML</abbr>documents.
    </p>
    <ul>
        <li><a href="index.html"   accesskey="1">Home</a></li>
        <li><a href="searh.html"   accesskey="4">Search</a></li>
        <li><a href="contact.html" accesskey="9">Contact</a></li>
    </ul>


</body>
<script type="text/javascript">
    function addLoadEvent(func){
        //将现有的事件处理函数的值存入变量中
        var oldonload =window.onload;   
        //如果这个事件处理函数没有绑定任何函数,就把新函数添加给它
        if(typeof window.onload!="function"){
            window.onload=func;
        }else{
        //如果已经绑定了函数,就把新函数追加到现有指令的末尾
            window.onload=function(){
                oldonload();
                func();
            }
        }
    }

    function displayAbbreviations(){
        //检测
        if(!document.getElementsByTagName||
           !document.createElement|| 
           !document.createTextNode)return false;
        //取得所有缩略词
        var abbreviations=document.getElementsByTagName("abbr");
        if (abbreviations.length<1)return false;
        var defs=new Array();
        //遍历所有缩略词
        for (var i = 0; i < abbreviations.length; i++) {
            var current_abbr=abbreviations[i];
            var definition=current_abbr.getAttribute("title");
            var key=current_abbr.lastChild.nodeValue;
            defs[key]=definition;
        }
        //创建定义列表
        var dlist=document.createElement("dl");
        for(key in defs){
            var definition=defs[key];
        //创建定义标题
            var dtitle=document.createElement("dt");
            var dtitle_text=document.createTextNode(key);
            dtitle.appendChild(dtitle_text);
        //创建定义描述
            var ddesc=document.createElement("dd");
            var ddesc_text=document.createTextNode(definition);
            ddesc.appendChild(ddesc_text);
        //把他们添加到定义列表
            dlist.appendChild(dtitle);
            dlist.appendChild(ddesc);
        }
        //解决IE报错
        if(dlist.childNodes.length<1)return false;
        //创建标题
        var header=document.createElement("h2");
        var header_text=document.createTextNode("Abbreviations")
        header.appendChild(header_text);
        //把标题添,列表加到页面主题
        document.body.appendChild(header);
        document.body.appendChild(dlist);
    }

    //2.创建一个文献来源链接表
    function displayCitations(){
        //检测
    if(!document.getElementsByTagName||
       !document.createElement|| 
       !document.createTextNode)return false ;
        //取得所有引用
        var quotes=document.getElementsByTagName("blockquote");
        //遍历所有引用
        for (var i = 0; i < quotes.length; i++) {
        //如果没有cite属性,继续循环
            if(!quotes[i].getAttribute("cite"))continue;
        //保存cite属性
            var url=quotes[i].getAttribute("cite");
        //取得元素节点
            var qutoeChildren=quotes[i].getElementsByTagName('*');
        //如果没有元素节点,继续循环
            if(qutoeChildren.length<1)continue;
        //取得引用中最后一个元素节点
            var elem=qutoeChildren[qutoeChildren.length-1];
        //创建标记
            var link=document.createElement("a");
            var link_text=document.createTextNode("source");
            link.appendChild(link_text);
            link.setAttribute("href",url);
            var superscript=document.createElement("sup");
            superscript.appendChild(link);
            elem.appendChild(superscript);
        };
    }

    //3.创建一个快捷清单
    function displayAcceskeys(){
    //检测
    if(!document.getElementsByTagName||
       !document.createElement|| 
       !document.createTextNode)return false;
        //取得文档中所有链接
            var links=document.getElementsByTagName("a");
        //创建数组,保存访问键
            var akeys=new Array();
        //遍历链接
            for (var i = 0; i < links.length; i++) {
            var current_link=links[i];
        //如果没accesskey属性的值,继续循环
            if (!current_link.getAttribute("accesskey"))continue;
        //取得accesskey的值
            var key=current_link.getAttribute("accesskey");
        //取得链接文本
            var text=current_link.lastChild.nodeValue;
        //添加到数组
            akeys[key]=text;
        }
        //创建列表
        var list=document.createElement("ul");
        //遍历访问键
        for(key in akeys){
            var text=akeys[key];
        //创建放到列表项的字符串
            var str=key+":"+text;
        //创建列表项
            var item=document.createElement("li");
            var item_text=document.createTextNode(str);
            item.appendChild(item_text);
            list.appendChild(item);
        }
        //创建标题
            var header=document.createElement("h3")
            var header_text=document.createTextNode("Accesskeys")
            header.appendChild(header_text)
        //把标题添加到页面主体
            document.body.appendChild(header);
            document.body.appendChild(list);

    }

        addLoadEvent(displayAbbreviations);
        addLoadEvent(displayCitations);
        addLoadEvent(displayAcceskeys);

    /*
        本章完成了三件事情:
            1.把文档里的缩略语显示为一个“缩略语列表”。
            2.为文档里引用的每段文献节选生产一个“文献来源链接”。
            3.把文档所支持的快捷键显示为一份“快捷键清单”。

        自己写demo的时候,不是很理想,出现了许多报错,一步步回头检查。
        大多都是不细心写错字符造成。


    */
</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值