JavaScript使用心得汇总:从BOM和DOM谈起

开发 前端
本文对JavaScript使用心得,尤其是BOM和DOM的一些概念进行了介绍。

JavaScript这个东西,一开始上手觉得没什么,主要用来美化页面而已;但是随着对Web开发的理解更加深入,尤其是对Web 2.0下开发的接触渐多,便会发现JavaScript其实是个十分有用的语言。下面就总结一下JavaScript的使用心得。

先说点什么呢,那就从BOM和DOM说开吧。

JavaScript使用心得之BOM和DOM

自从netscape navigator2.0把js引入到浏览器中,js可谓与浏览器接下了不解之缘,而js在浏览器中执行的速度,也是现在各种各样的浏览器展示其牛*的主要指标之一。那BOM和DOM到底是什么类?

BOM:Browser Object Model,是浏览器相关的一组特性,由于和浏览器相关,那一定没有统一的标准了,原因是,有ms了......,不过庆幸的是,还是有一些事实标准的。

DOM:Document Object Model,这个就是标准了,由著名的w3c制定,目前***的级别是level 3,不过3还没有彻底完成,目前主流的浏览器都可以支持到(仅仅是支持到哦,并不是完全遵守的)level 2,对html,也就是html4.x,目前***的是4.01,后来w3c向把html统一向xml靠拢,于是就有了xhtml1.0,再后来,w3c想搞一个xhtml2.0,结果进度缓慢,加之各大厂商又不看好,于是就有了html5.0 (很牛的东东,有待尝试哦)。

对规范有兴趣可以浏览维基上的一篇文章

JavaScript使用心得之BOM描述

好了,BOM和DOM的历史就先说到这里了,搞点实质性的东东,先说一下BOM的体系结构:

BOM的体系结构 

先从window说起,对于window,最简单的一句就是它是表示打开页面的浏览器窗口,并不包含页面的内容。请牢记后一句话,我在最开始的时候,就用它访问过页面的内容,结果当然是访问不到了。

既然是表示浏览器的窗口,那就一定包含:

◆新建窗口(window.open()),

◆关闭窗口(window.close()),

◆改变窗口位置(resizeBy(),resizeTo()),

◆移动窗口(moveBy(),moveTo),

还有一些其固有的特性,比如:

◆打开新的连接,并可以指定打开方式

◆弹出系统对话框(alert(),confirm(),prompt()),

◆设置超时与暂停(setTimeout(),setInterval()),

◆状态栏,

前面的那些操作使用的时候可以查阅文档,当然能记住更好。不过要注意不同的浏览器对这些方法的支持各不一样,Oh,My God,It's  a  confusion of world!后两个操作十分的不专业,***不要使用。

对于特性要罗嗦一下咯,***一个特性,不专业,尽量不要使用,第二和第三个,一看就知道了,也没啥说的,***个还是有必要说一下的。

提一个问题,如何通过js实现在一个新的窗口打开连接,也就是通过js实现类似点击

  1. < a href='http://www.sina.com' target='_blank'>sina< /a> 

的效果,用location么,错,虽然location有target这个属性,但,那是不行的,那怎么解决类?呵呵,答案是使用

  1. window.open('http://www.sina.com','_blank'); 

这句代码的实际意思是把一个连接在一个指定的框架(frame)内打开,_self

,_top,_blank,这些是专有的框架名。

然后再说一说让人迷惑的几个东东,parent,self,top,opener,,怎么样可区分清楚么?

其中self总是等于window,仅是名字不一样而已,不过正是由于这个特点,使用它可以使我们的代码更易于阅读,而top对象和parent对象,本人认为,只有在多框架(frames)下才会被用到,top对象指向最顶层的框架,也就是当一个页面使用了frame或iframe时,才会被用到。***opener用于window.open()打开的子窗口。

然后下来说一说document和location对象,首先,我在上面的BOM的体系结构图中,将这两个对象标记为了红颜色,为什么类?简单,是由于混乱。

document是一个既属于BOM又属于DOM的对象,而location对象,则是一个既属于window,又属于document的属性。从BOM的角度来看,document对象中包含了页面中一些通用的属性和集合,不过document中的很多属性(alinkColor,bgColor,fgColor,linkColor,vlinkColor)是可以通过css控制的,所以我的建议是能使用css控制的尽量使用css,而剩下的属性(lastModifie

d,referrer,title,URL),基本上没有多大的用处,要说有用的,我认为只有referrer可能有点用,它可以告诉你用户是怎么访问到你的页面的。其实document的主要作用是用于DOM。

location对象表示载入窗口的URL,同时还可以用于解析URL,比如要获得GET请求后的参数可以使用

  1. location.search 

对于history和navigator对象,history对象提供了go(int),back(),forward()方法,他们的功能类似于浏览器的前进和后退,不过出于安全的考虑,history仅仅提供导航的功能,要想得到用户的浏览历史,仅靠这个对象是不行的。

PS:不过要想得到用户的历史也不是不可能,利用a标签的特点,呵呵,开动脑筋想一想吧

navigator对象,呵呵,常被用来判断用户的浏览器类型,和用户的操作系统类型。不过这两个问题也是十分复杂的问题,以后单独说吧

***一个,screen对象,我实际的工作中没有用到过,基于没有实践,就没有发言权的伟大理论,我就不总结了

以上就介绍了这些JavaScript使用心得。

【编辑推荐】

  1. C# JavaScript函数使用
  2. JavaScript 2.0新特性抢先看 向经典语言靠近
  3. 开源语言排行榜:PHP与JavaScript受青睐
  4. ASP.NET控件开发之UpdatePanel触发JavaScript脚本技巧
  5. 使用Javascript实现.NET验证控件功能
责任编辑:yangsai 来源: skeeey的博客
相关推荐

2010-06-07 16:55:00

JavaScript

2009-08-11 11:42:50

Ruby使用心得

2011-01-19 14:57:09

Thunderbird

2009-06-19 11:09:27

Spring AOP

2011-01-07 11:14:17

Nginx负载均衡负载均衡

2011-09-01 10:16:43

JQuery Mobi

2010-02-01 10:15:07

C++ TinyXML

2022-06-27 19:16:53

Obsidian工具

2009-07-31 18:37:45

ASP.NET MVC

2009-08-28 10:08:15

C# using语句

2010-03-02 17:33:49

Android 2.0

2009-06-26 16:12:08

ThickboxjQuery

2011-07-12 14:38:35

XenServer 5

2009-08-31 10:00:07

C#静态变量

2017-04-25 16:45:11

2010-08-06 11:12:38

FlexCairngorm框架

2011-04-20 13:59:28

爱普生V100扫描仪

2010-06-01 13:42:37

TortoiseSVN

2011-03-15 11:05:03

2016-10-07 15:45:59

点赞
收藏

51CTO技术栈公众号