當(dāng)我們需要對(duì)html網(wǎng)頁(yè)進(jìn)行轉(zhuǎn)向的時(shí)候或是讀取當(dāng)前網(wǎng)頁(yè)的時(shí)候可以用到下面三個(gè)對(duì)像:
window.location、document.location、document.URL 對(duì)當(dāng)前網(wǎng)頁(yè)進(jìn)行跳轉(zhuǎn)
我們先來(lái)看看 document 與 window對(duì)象:
[window 對(duì)象]
它是一個(gè)頂層對(duì)象,而不是另一個(gè)對(duì)象的屬性即瀏覽器的窗口。
[document 對(duì)象]
該對(duì)象是window和frames對(duì)象的一個(gè)屬性,是顯示于窗口或框架內(nèi)的一個(gè)文檔。
document 只是屬于window 的一個(gè)子對(duì)像。
window.location 包含 href 屬性,直接取值賦值時(shí)相當(dāng)于 window.location.href。
window.location.href 當(dāng)前頁(yè)面完整 URL。
document.location 包含 href 屬性,直接取值賦值時(shí)相當(dāng)于 document.location.href。
document.location.href 當(dāng)前頁(yè)面完整 URL。
document.href 沒(méi)有這個(gè)屬性。
document.URL 取值時(shí)等價(jià)于 window.location.href 或 document.location.href。在某些瀏覽器中通過(guò)對(duì) document.URL 賦值來(lái)實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),但某些瀏覽器中不行。
那么 window.location 和 document.location 有什么區(qū)別呢?我認(rèn)為是沒(méi)有區(qū)別的,我已經(jīng)在多個(gè)瀏覽器中不同頁(yè)面(包括 iframe、frame)中測(cè)試了。有人說(shuō)一個(gè)可寫(xiě),一個(gè)只讀,這一點(diǎn)也在我的測(cè)試中被否定了。同樣在 MSDN 中說(shuō) location 應(yīng)用于 window 和 document,但并未提出二者有區(qū)別。所以我認(rèn)為二者是沒(méi)有區(qū)別的。
[document對(duì)象]
該對(duì)象是window和frames對(duì)象的一個(gè)屬性,是顯示于窗口或框架內(nèi)的一個(gè)文檔。
屬性
alinkColor 活動(dòng)鏈接的顏色(ALINK)
anchor 一個(gè)HTMI錨點(diǎn),使用<A NAME=>標(biāo)記創(chuàng)建(該屬性本身也是一個(gè)對(duì)象)
anchors array 列出文檔錨點(diǎn)對(duì)象的數(shù)組(<A NAME=>)(該屬性本身也是一個(gè)對(duì)象)
bgColor 文檔的背景顏色(BGCOLOR)
cookie 存儲(chǔ)于cookie.txt文件內(nèi)的一段信息,它是該文檔對(duì)象的一個(gè)屬性
fgColor 文檔的文本顏色(<BODY>標(biāo)記里的TEXT特性)
form 文檔中的一個(gè)窗體(<FORM>)(該屬性本身也是一個(gè)對(duì)象)
forms anay 按照其出現(xiàn)在文檔中的順序列出窗體對(duì)象的一個(gè)數(shù)組(該屬性本身也是一個(gè)對(duì)象)
lastModified 文檔最后的修改日期
linkColor 文檔的鏈接的顏色,即<BODY>標(biāo)記中的LINK特性(鏈接到用戶沒(méi)有觀察到的文檔)
link 文檔中的一個(gè)<A HREF=>標(biāo)記(該屬性本身也是一個(gè)對(duì)象)
links array 文檔中l(wèi)ink對(duì)象的一個(gè)數(shù)組,按照它們出現(xiàn)在文檔中的順序排列(該屬性本身也是一個(gè)對(duì)象)
location 當(dāng)前顯示文檔的URL。用戶不能改變document.location(因?yàn)檫@是當(dāng)前顯示文檔的位置)。但是,
可以改變 window.location (用其它文檔取代當(dāng)前文檔)window.location本身也是一個(gè)對(duì)象,而
document.location不是對(duì)象
referrer 包含鏈接的文檔的URL,用戶單擊該鏈接可到達(dá)當(dāng)前文檔
title 文檔的標(biāo)題((TITLE>)
vlinkColor 指向用戶已觀察過(guò)的文檔的鏈接文本顏色,即<BODY>標(biāo)記的VLINK特性
方法
clear 清除指定文檔的內(nèi)容
close 關(guān)閉文檔流
open 打開(kāi)文檔流
write 把文本寫(xiě)入文檔
writeln 把文本寫(xiě)入文檔,并以換行符結(jié)尾
[window對(duì)象]
它是一個(gè)頂層對(duì)象,而不是另一個(gè)對(duì)象的屬性即瀏覽器的窗口。
屬性
defaultStatus 缺省的狀態(tài)條消息
document 當(dāng)前顯示的文檔(該屬性本身也是一個(gè)對(duì)象)
frame 窗口里的一個(gè)框架((FRAME>)(該屬性本身也是一個(gè)對(duì)象)
frames array 列舉窗口的框架對(duì)象的數(shù)組,按照這些對(duì)象在文檔中出現(xiàn)的順序列出(該屬性本身也是一個(gè)
對(duì)象)
history 窗口的歷史列表(該屬性本身也是一個(gè)對(duì)象)
length 窗口內(nèi)的框架數(shù)
location 窗口所顯示文檔的完整(絕對(duì))URL(該屬性本身也是一個(gè)對(duì)象)不要把它與如document.location
混淆,后者是當(dāng)前顯示文檔的URL。用戶可以改變window.location(用另一個(gè)文檔取代當(dāng)前文檔),但卻不能改變
document.location (因?yàn)檫@是當(dāng)前顯示文檔的位置)
name 窗口打開(kāi)時(shí),賦予該窗口的名字
opener 代表使用window.open打開(kāi)當(dāng)前窗口的腳本所在的窗口(這是Netscape Navigator 3.0beta 3所引
入的一個(gè)新屬性)
parent 包含當(dāng)前框架的窗口的同義詞。frame和window對(duì)象的一個(gè)屬性
self 當(dāng)前窗口或框架的同義詞
status 狀態(tài)條中的消息
top 包含當(dāng)前框架的最頂層瀏覽器窗口的同義詞
window 當(dāng)前窗口或框架的同義詞,與self相同
方法
alert() 打開(kāi)一個(gè)Alert消息框
clearTimeout() 用來(lái)終止setTimeout方法的工作
close() 關(guān)閉窗口
confirm() 打開(kāi)一個(gè)Confirm消息框,用戶可以選擇OK或Cancel,如果用戶單擊OK,該方法返回true,單擊
Cancel返回false
blur() 把焦點(diǎn)從指定窗口移開(kāi)(這是Netscape Navigator 3.0 beta 3引入的新方法)
focus() 把指定的窗口帶到前臺(tái)(另一個(gè)新方法)
open() 打開(kāi)一個(gè)新窗口
prompt() 打開(kāi)一個(gè)Prompt對(duì)話框,用戶可向該框鍵入文本,并把鍵入的文本返回到腳本
setTimeout() 等待一段指定的毫秒數(shù)時(shí)間,然后運(yùn)行指令事件處理程序事件處理程序
Onload() 頁(yè)面載入時(shí)觸發(fā)
Onunload() 頁(yè)面關(guān)閉時(shí)觸發(fā)
區(qū)別:用戶不能改變document.location(因?yàn)檫@是當(dāng)前顯示文檔的位置)。但是,可以改變window.location (用其它文檔取代當(dāng)前文檔)window.location本身也是一個(gè)對(duì)象,而document.location不是對(duì)象