客户端javascript

开篇:

  阅读了javscript权威指南的第二章的笔记整理,虽说是笔记,实际上就是把书中感觉可以抄下来的店给copy过来了,如有雷同纯属故意为之,敬请包涵。

正文篇:

  文章首先简单的介绍了一下客户端js中的部分基础的概念,由于其他的概念也十分的丰富,单独一篇写完会好长好长,所以分成了多片区记录所学,到时候上连接哟,可以直接观看。

1.Window:

  好了不废话了,我们首先来介绍一些关于Window的概念吧。

  Window在客户来说就是我们但钱显示这一页面内容的显示窗口,它其实是作为整个客户端js的主题的内容进行存在的,这个对象中存在这许多的预设的属性和内容,而这些属性和函数就是我们所说的全局函数,window属性是Window对象中的一个变量用于直接指代Window本身,它们两之间的关系就有点像Function和prototype之间的相互关联的关系。

  来个完整的说明,接招吧:

  Window 对象属性

属性描述IEFO
closed返回窗口是否已被关闭。419
defaultStatus设置或返回窗口状态栏中的默认文本。4No9
document对 Document 对象的只读引用。请参阅 Document 对象。419
history对 History 对象的只读引用。请参数 History 对象。419
innerheight返回窗口的文档显示区的高度。NoNoNo
innerwidth返回窗口的文档显示区的宽度。NoNoNo
length设置或返回窗口中的框架数量。419
location用于窗口或框架的 Location 对象。请参阅 Location 对象。419
name设置或返回窗口的名称。419
Navigator对 Navigator 对象的只读引用。请参数 Navigator 对象。419
opener返回对创建此窗口的窗口的引用。419
outerheight返回窗口的外部高度。NoNoNo
outerwidth返回窗口的外部宽度。NoNoNo
pageXOffset设置或返回当前页面相对于窗口显示区左上角的 X 位置。NoNoNo
pageYOffset设置或返回当前页面相对于窗口显示区左上角的 Y 位置。NoNoNo
parent返回父窗口。419
Screen对 Screen 对象的只读引用。请参数 Screen 对象。419
self返回对当前窗口的引用。等价于 Window 属性。419
status设置窗口状态栏的文本。4No9
top返回最顶层的先辈窗口。419
windowwindow 属性等价于 self 属性,它包含了对窗口自身的引用。419
  • screenLeft
  • screenTop
  • screenX
  • screenY

只读整数。声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。IE、Safari 和 Opera 支持 screenLeft

和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。

419

  Window 对象方法

方法描述IEFO
alert()显示带有一段消息和一个确认按钮的警告框。419
blur()把键盘焦点从顶层窗口移开。419
clearInterval()取消由 setInterval() 设置的 timeout。419
clearTimeout()取消由 setTimeout() 方法设置的 timeout。419
close()关闭浏览器窗口。419
confirm()显示带有一段消息以及确认按钮和取消按钮的对话框。419
createPopup()创建一个 pop-up 窗口。4NoNo
focus()把键盘焦点给予一个窗口。419
moveBy()可相对窗口的当前坐标把它移动指定的像素。419
moveTo()把窗口的左上角移动到一个指定的坐标。419
open()打开一个新的浏览器窗口或查找一个已命名的窗口。419
print()打印当前窗口的内容。519
prompt()显示可提示用户输入的对话框。419
resizeBy()按照指定的像素调整窗口的大小。419
resizeTo()把窗口的大小调整到指定的宽度和高度。41.59
scrollBy()按照指定的像素值来滚动内容。419
scrollTo()把内容滚动到指定的坐标。419
setInterval()按照指定的周期(以毫秒计)来调用函数或计算表达式。419
setTimeout()在指定的毫秒数后调用函数或计算表达式。419

 

2.js引入和执行:

  在我们编写web应用的时候,HTML和js的结合将会是十分的重要,我们通常有集中方式在HTML中引入我们的js代码。其中一个就是是用script标签。例如:

1 

如上就是最为简单的一种方式,还有一种是通过连接引入的方式。

通过src属性来进行js文件的位置的内容。

//当我们使用的不是标准的脚本语言的时候我们使用script标签应该添加当前类型的说明

由上可见,在两个script标签中可以进行VbSCript内容的编程,之前还有一个属性是language,但是现在这一属性已经废弃了,所以说明内容的标准的时候需要使用type属性。

当然还有一种URL中的js的写法:

/*......*/

如上所示,在URL中我们使用javascript:标识符之后加入js代码的形式,来提示运行点击时候的js代码。但是这种方式的js代码,只能运行单行可表示的。不能多哟。

  我们在编写代码的过程中,经常为了使得html和js的代码分离,常常使用第二种连接读取的方式,当然有士兵不可避免的直接在HTML文件中通过标签来书写相关的脚本文件,但是需要少量的编写,大量的js的代码混杂HTML内容里面将会使得代码难以阅读和维护的。

 

3.脚本化文档(此处的文档是DOM)

  文档对象模型(DOM)是表示和操作HTML和XML的操作的API。我们这里将要记录的内容如下。
  • Node对象的简介
  • 文档元素选取
    • 多方式选取
    • 元素树遍历
  • 元素属性操作
  • 文档节点功能操作
    • 创建节点
    • 插入节点
    • 删除节点
    • DocumentFragment运用技巧
  • 文档节点显示形式和位置
  • 特殊文档

 

  (1).Node对象简介,这里的node并不是nodeJS中的指令,而是说我们的文档中的其中的一个节点,我们知道对于不论是HTML或者是XML文档来说,对于DOM来说实际上都是以树状的数据结构来进行理解的。以document对象作为整体树结构的头结点。然后一级一级的展开,表明每一级元素的内容和下一级的子元素的内容。

  

  就如上图所示的内容一样,这时候实际上,除去Dom树的头结点是Document对象以外,其实其他的节点实际上都是Node对象。但是node对象又有许多的子集,其关系如下图:

  

  课件Node对象实际上是Document,CharacterData,Element和Attribute对象的超集。他们分别是指代或是运用体现的信息是:

  Document为文档信息树头信息。

  Element指代的实际上就是我们最为常用的HTML或者是XML的标签信息。

  CharacterData对象呢这是指代的是当前文档中的文本的部分,包括纯文本和注释文本。

  Attribute对象在文档中的体现会比较少一些,它表示的是对象的属性文档。

  当然对于这4个Node的子集来说,使我们最为常用的,当然也是个文档通用的(包括HTML或者是XML等等,适用于DOM标准的文档)。但是我们也可见例如Document或者是Element对象是有子集(解释途中HTML开头的对象),当然这些子集的功能会更为的专一,以HTML开头的定义的子集功能只对于HTML文档才会有效果,所以在使用的时候要更为的注意,有些方法和属性是只有HTML中才会有的哟。

 

  (2)接下来我们来看一看平常编码中使用的最多的文档元素的选取。

  首先是通过选取方法来获取。

  getElementById: 首先我们要说的是基本上所有写过js的人都了解过的,或是使用过的,getElementById这一个方法,带入参数是元素ID。ID是当前文档中的毛衣元素的标识符号,每一个元素中只有一个不能重复的,所以其选取到的实际上就是确定的一个元素,它会返回一个Element对象。当然我们可以使用这一特性,编写例如getElements这样的方法,通过一组ID信息,获取一组元素对象。代码可见如下哟。

 1 function getElements(/*id....*/){
 2     var elements = {};
 3     for(var i = 0 ; i < arguments.length; i++){
 4         var elt = document.getElementById(arguments[i]);
 5         if(elt == null){
 6             throw new Error("No element with id:"+arguments[i]);
 7         }
 8         elements[i] = elt;
 9     }    
10     return elemtns;
11 }

  getElementsByName: name虽然不是一个很常用的属性,但是进场要和表单打交道的我们肯定是不会陌生的。设置name属性的元素是可以有一个或是多个的,但是可用的标签很少,包括表单,表单元素,