自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JavaScript使用心得匯總:從BOM和DOM談起

開(kāi)發(fā) 前端
本文對(duì)JavaScript使用心得,尤其是BOM和DOM的一些概念進(jìn)行了介紹。

JavaScript這個(gè)東西,一開(kāi)始上手覺(jué)得沒(méi)什么,主要用來(lái)美化頁(yè)面而已;但是隨著對(duì)Web開(kāi)發(fā)的理解更加深入,尤其是對(duì)Web 2.0下開(kāi)發(fā)的接觸漸多,便會(huì)發(fā)現(xiàn)JavaScript其實(shí)是個(gè)十分有用的語(yǔ)言。下面就總結(jié)一下JavaScript的使用心得。

先說(shuō)點(diǎn)什么呢,那就從BOM和DOM說(shuō)開(kāi)吧。

JavaScript使用心得之BOM和DOM

自從netscape navigator2.0把js引入到瀏覽器中,js可謂與瀏覽器接下了不解之緣,而js在瀏覽器中執(zhí)行的速度,也是現(xiàn)在各種各樣的瀏覽器展示其牛*的主要指標(biāo)之一。那BOM和DOM到底是什么類?

BOM:Browser Object Model,是瀏覽器相關(guān)的一組特性,由于和瀏覽器相關(guān),那一定沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)了,原因是,有ms了......,不過(guò)慶幸的是,還是有一些事實(shí)標(biāo)準(zhǔn)的。

DOM:Document Object Model,這個(gè)就是標(biāo)準(zhǔn)了,由著名的w3c制定,目前***的級(jí)別是level 3,不過(guò)3還沒(méi)有徹底完成,目前主流的瀏覽器都可以支持到(僅僅是支持到哦,并不是完全遵守的)level 2,對(duì)html,也就是html4.x,目前***的是4.01,后來(lái)w3c向把html統(tǒng)一向xml靠攏,于是就有了xhtml1.0,再后來(lái),w3c想搞一個(gè)xhtml2.0,結(jié)果進(jìn)度緩慢,加之各大廠商又不看好,于是就有了html5.0 (很牛的東東,有待嘗試哦)。

對(duì)規(guī)范有興趣可以瀏覽維基上的一篇文章。

JavaScript使用心得之BOM描述

好了,BOM和DOM的歷史就先說(shuō)到這里了,搞點(diǎn)實(shí)質(zhì)性的東東,先說(shuō)一下BOM的體系結(jié)構(gòu):

BOM的體系結(jié)構(gòu) 

先從window說(shuō)起,對(duì)于window,最簡(jiǎn)單的一句就是它是表示打開(kāi)頁(yè)面的瀏覽器窗口,并不包含頁(yè)面的內(nèi)容。請(qǐng)牢記后一句話,我在最開(kāi)始的時(shí)候,就用它訪問(wèn)過(guò)頁(yè)面的內(nèi)容,結(jié)果當(dāng)然是訪問(wèn)不到了。

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

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

◆關(guān)閉窗口(window.close()),

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

◆移動(dòng)窗口(moveBy(),moveTo),

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

◆打開(kāi)新的連接,并可以指定打開(kāi)方式

◆彈出系統(tǒng)對(duì)話框(alert(),confirm(),prompt()),

◆設(shè)置超時(shí)與暫停(setTimeout(),setInterval()),

◆狀態(tài)欄,

前面的那些操作使用的時(shí)候可以查閱文檔,當(dāng)然能記住更好。不過(guò)要注意不同的瀏覽器對(duì)這些方法的支持各不一樣,Oh,My God,It's  a  confusion of world!后兩個(gè)操作十分的不專業(yè),***不要使用。

對(duì)于特性要羅嗦一下咯,***一個(gè)特性,不專業(yè),盡量不要使用,第二和第三個(gè),一看就知道了,也沒(méi)啥說(shuō)的,***個(gè)還是有必要說(shuō)一下的。

提一個(gè)問(wèn)題,如何通過(guò)js實(shí)現(xiàn)在一個(gè)新的窗口打開(kāi)連接,也就是通過(guò)js實(shí)現(xiàn)類似點(diǎn)擊

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

的效果,用location么,錯(cuò),雖然location有target這個(gè)屬性,但,那是不行的,那怎么解決類?呵呵,答案是使用

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

這句代碼的實(shí)際意思是把一個(gè)連接在一個(gè)指定的框架(frame)內(nèi)打開(kāi),_self

,_top,_blank,這些是專有的框架名。

然后再說(shuō)一說(shuō)讓人迷惑的幾個(gè)東東,parent,self,top,opener,,怎么樣可區(qū)分清楚么?

其中self總是等于window,僅是名字不一樣而已,不過(guò)正是由于這個(gè)特點(diǎn),使用它可以使我們的代碼更易于閱讀,而top對(duì)象和parent對(duì)象,本人認(rèn)為,只有在多框架(frames)下才會(huì)被用到,top對(duì)象指向最頂層的框架,也就是當(dāng)一個(gè)頁(yè)面使用了frame或iframe時(shí),才會(huì)被用到。***opener用于window.open()打開(kāi)的子窗口。

然后下來(lái)說(shuō)一說(shuō)document和location對(duì)象,首先,我在上面的BOM的體系結(jié)構(gòu)圖中,將這兩個(gè)對(duì)象標(biāo)記為了紅顏色,為什么類?簡(jiǎn)單,是由于混亂。

document是一個(gè)既屬于BOM又屬于DOM的對(duì)象,而location對(duì)象,則是一個(gè)既屬于window,又屬于document的屬性。從BOM的角度來(lái)看,document對(duì)象中包含了頁(yè)面中一些通用的屬性和集合,不過(guò)document中的很多屬性(alinkColor,bgColor,fgColor,linkColor,vlinkColor)是可以通過(guò)css控制的,所以我的建議是能使用css控制的盡量使用css,而剩下的屬性(lastModifie

d,referrer,title,URL),基本上沒(méi)有多大的用處,要說(shuō)有用的,我認(rèn)為只有referrer可能有點(diǎn)用,它可以告訴你用戶是怎么訪問(wèn)到你的頁(yè)面的。其實(shí)document的主要作用是用于DOM。

location對(duì)象表示載入窗口的URL,同時(shí)還可以用于解析URL,比如要獲得GET請(qǐng)求后的參數(shù)可以使用

  1. location.search 

對(duì)于history和navigator對(duì)象,history對(duì)象提供了go(int),back(),forward()方法,他們的功能類似于瀏覽器的前進(jìn)和后退,不過(guò)出于安全的考慮,history僅僅提供導(dǎo)航的功能,要想得到用戶的瀏覽歷史,僅靠這個(gè)對(duì)象是不行的。

PS:不過(guò)要想得到用戶的歷史也不是不可能,利用a標(biāo)簽的特點(diǎn),呵呵,開(kāi)動(dòng)腦筋想一想吧

navigator對(duì)象,呵呵,常被用來(lái)判斷用戶的瀏覽器類型,和用戶的操作系統(tǒng)類型。不過(guò)這兩個(gè)問(wèn)題也是十分復(fù)雜的問(wèn)題,以后單獨(dú)說(shuō)吧

***一個(gè),screen對(duì)象,我實(shí)際的工作中沒(méi)有用到過(guò),基于沒(méi)有實(shí)踐,就沒(méi)有發(fā)言權(quán)的偉大理論,我就不總結(jié)了

以上就介紹了這些JavaScript使用心得。

【編輯推薦】

  1. C# JavaScript函數(shù)使用
  2. JavaScript 2.0新特性搶先看 向經(jīng)典語(yǔ)言靠近
  3. 開(kāi)源語(yǔ)言排行榜:PHP與JavaScript受青睞
  4. ASP.NET控件開(kāi)發(fā)之UpdatePanel觸發(fā)JavaScript腳本技巧
  5. 使用Javascript實(shí)現(xiàn).NET驗(yàn)證控件功能
責(zé)任編輯:yangsai 來(lái)源: skeeey的博客
相關(guān)推薦

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負(fù)載均衡負(fù)載均衡

2010-02-01 10:15:07

C++ TinyXML

2011-09-01 10:16:43

JQuery Mobi

2009-07-31 18:37:45

ASP.NET MVC

2022-06-27 19:16:53

Obsidian工具

2009-06-26 16:12:08

ThickboxjQuery

2009-08-28 10:08:15

C# using語(yǔ)句

2010-03-02 17:33:49

Android 2.0

2011-07-12 14:38:35

XenServer 5

2009-08-31 10:00:07

C#靜態(tài)變量

2017-04-25 16:45:11

2011-03-15 11:05:03

2011-04-20 13:59:28

愛(ài)普生V100掃描儀

2010-06-01 13:42:37

TortoiseSVN

2010-08-06 11:12:38

FlexCairngorm框架

2020-03-16 08:13:58

SQL性能問(wèn)題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)