充实文档的内容

1.把文档里的缩略语显示为一个“缩略语列表”
2.把文档里的引用的每段文献节选生成一个“文献来源链接”
3.把文档所支持的快捷键显示为一份“快捷键清单”

explanation2.html

<title>Explaining the Document Object Model</title>
<link rel="stylesheet" media="screen" href="styles/typography.css"/>
<script src="scripts/addLoadEvent.js"></script>
<script src="scripts/displayAbbreviations.js"></script>
<script src="scripts/displayCitations.js"></script>
<script src="scripts/displayAccessKeys.js"></script>
</head>

<body>
<ul id="navigation">
  <li><a href="index.html" accesskey="1">Home</a></li>
  <li><a href="search.html" accesskey="4">Search</a></li>
  <li><a href="contact.html" accesskey="0">Contact</a></li>
<h1>What is the Document Object Modal?</h1>
<p>
The <abbr title="World Wide Web Consortium">W3C</abbr> defines the <abbr title="Document Object Modal">DOM</abbr> as:
</p>
<blockquote cite="http://www.w3.org/DOM/">
<p>
 A platform- and language-neutral interface that will allow programs and scripts 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> that can be used to navigate <abbr title="HyperText Markup Language"> HTML</abbr> and <abbr title="eXtensible Markup Language">XML</abbr>document.
</p>

</body>

typography.css

@charset "utf-8";
/* CSS Document */

body{
     font-family:"Helvetica","Arial",sans-serif;
     font-size:10pt;
     }
abbr{
     text-decoration:none;
     border:0;
     font-style:normal; 
    }

displayAbbreviations.js

// JavaScript Document
function displayAbbreviations(){
    if(!document.getElementsByTagName||!document.createElement||!document.createTextNode)return false; //检查兼容性
     var abbreviations=document.getElementsByTagName("abbr");  //所有abbr节点集合
     if(abbreviations.length<1)return false;      //判断abbreviations数组有多少个缩略语
     var defs=new Array();      //保存每个abbr元素提供的信息
     for(var i=0;i<abbreviations.length;i++){     //开始遍历数组
          var current_abbr=abbreviations[i];      //被遍历的数组元素赋给一个变量
          if(current_abbr.childNodes.length<1) continue;     //
          var definition=current_abbr.getAttribute("title");   //得到title属性值并保存到变量里
          var key=current_abbr.lastChild.nodeValue;   //得到文本节点的nodeValue属性并赋值给变量
          defs[key]=definition;                //保存到数组里
          //defs[abbreviations[i].lastChild.nodeValue]=abbreviations[i].getAttribute("title");
         }
         var dlist=document.createElement("dl");    //创建一个定义列表元素
         for(key in defs){                          //对于defs关联数组里的每个键,把他的值赋给变量key
              var definition=defs[key];             //第一次循环里,变量key值为W3C,变量definition值为World Web Consortium;第二次.....
              var dtitle=document.createElement("dt");    //每次循环都需要创建一个dt和dd元素
              var dtitle_text=document.createTextNode(key);  //用变量key的值去创建一个文本节点
              dtitle.appendChild(dtitle_text);            //文本节dtitle_text点添加到元素节点dtitle
             var ddesc=document.createElement("dd");     
              var ddesc_text=document.createTextNode(definition);
              ddesc.appendChild(ddesc_text);
              dlist.appendChild(dtitle);               //追加到dl元素上
              dlist.appendChild(ddesc);
         }
         if(dlist.childNodes.length<1)return false;
             
       var header=document.createElement("h2");
        var header_text=document.createTextNode("Abbreviations");
         header.appendChild(header_text);                     //插入这个定义列表之前先加一个描述性标题
         //document.getElementsByTagName("body")[0];
        document.body.appendChild(header);
        document.body.appendChild(dlist);                //插入标题和列表在body里用HTML-DOM
         
         
         //window.onload=displayAbbreviations;   //页面加载时被调用
        }
        
         addLoadEvent(displayAbbreviations);

addLoadEvent.js

// JavaScript Document
function addLoadEvent(func){
     var oldonload=window.onload;
     if(typeof window.onload!='function'){
          window.onload=func;
         }else{
              window.onload=function(){
                   oldonload();
                   func();
                  }
             }
    }

displayCitations.js

// JavaScript Document
function displayCitations(){
     if(!document.getElementsByTagName||!document.createElement||!document.createTextNode)return false;
     var quotes=document.getElementsByTagName("blockquote");    //取得所有引用
     for(var i=0;i<quotes.length;i++){                   //遍历引用
         if(!quotes[i].getAttribute("cite")) continue;  //如果没有cite属性,继续循环
         var url=quotes[i].getAttribute("cite");     //保存cite属性
         var quoteChildren=quotes[i].getElementsByTagName('*');   //取得引用中所有元素节点
         if(quoteChildren.length<1)continue;  //如果没有元素节点,继续循环
         var elem=quoteChildren[quoteChildren.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);            //把标记添加到引用中的最后一个元素节点
         }
    }
    addLoadEvent(displayCitations);

displayAccessKeys.js

// JavaScript Document
function displayAccessKeys(){
     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];
          if(!current_link.getAttribute("accesskey")) continue;
          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(displayAccessKeys);
图片2.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明先生_x阅读 15,967评论 3 119
  • 今天上午我们表演六一节目,我们表演的是留守儿童的故事,我很期待。我们的节目是第13个。所以我们就去后楼排练了两遍...
    韩梦荧阅读 252评论 0 0
  • 文/金戈的歌 地铁是个奇妙之处。嘈杂昏暗、狭小拥挤的空间,不得不亲密贴紧的无数陌生人,黑暗中映出人影的玻璃门窗,凄...
    金七言阅读 10,216评论 75 229