JavaScript Window窗口對(duì)象屬性和使用方法
一、Window對(duì)象概述
Window對(duì)象可以用來(lái)打開(kāi)瀏覽器,調(diào)整瀏覽器的位置、大小等等功能。
Window對(duì)象可以處理框架和框架之間的關(guān)系,通過(guò)這種關(guān)系在一個(gè)框架中處理另一個(gè)框架中的文檔。他也是所有對(duì)象的頂級(jí)對(duì)象,通過(guò)Window對(duì)象的子對(duì)象進(jìn)行操作,可以實(shí)現(xiàn)更多的效果。
1、Window對(duì)象屬性
每個(gè)對(duì)象都有自己的屬性,頂級(jí)對(duì)象Window是所有其他子對(duì)象的父對(duì)象,它可以出現(xiàn)在每個(gè)頁(yè)面上,并且可以咋單個(gè)JS應(yīng)用程序中被多次使用。
下表列出了一些Window對(duì)象常用屬性:
| 屬性 | 說(shuō)明 |
|---|---|
| document | 對(duì)話框中顯示當(dāng)前文檔 |
| frames | 表示當(dāng)前對(duì)話框中所有frame對(duì)象的集合 |
| location | 指定當(dāng)前文檔的URL |
| name | 對(duì)話框的名字 |
| status/defaultStatus | 狀態(tài)欄中的當(dāng)前信息 |
| top | 表示最頂層的瀏覽器對(duì)話框 |
| parent/opener | 表示包含當(dāng)前對(duì)話框的夫?qū)υ捒?/td> |
| closed | 表示當(dāng)前對(duì)話框是否關(guān)閉(布爾值) |
| self | 表示當(dāng)前對(duì)話框 |
| screen | 表示用戶屏幕,提供屏幕尺寸、顏色深度等信息 |
| navigator | 表示瀏覽器對(duì)象,用于獲取與瀏覽器相關(guān)的信息 |
2、Window對(duì)象方法
| 方法 | 說(shuō)明 |
|---|---|
| alert() | 彈出警告對(duì)話框 |
| confrim() | 在確認(rèn)對(duì)話框顯示指定的字符串 |
| prompt() | 彈出一個(gè)提示對(duì)話框 |
| open() | 打開(kāi)新瀏覽器對(duì)話框并且顯示URL或名字引用的文檔,并設(shè)置創(chuàng)建對(duì)話框的屬性 |
| close() | 關(guān)閉被引用的對(duì)話框 |
| focus() | 指定對(duì)話框放在所有瀏覽器最前面 |
| blur() | 指定對(duì)話框放在所有瀏覽器最后面 |
| scrollTo(x,y) | 把對(duì)話框滾動(dòng)到指定的坐標(biāo) |
| scrollBy(offsetx,offsety) | 按照指定位移量滾動(dòng)對(duì)話框 |
| setTimeout(timer) | 在指定的毫秒數(shù)過(guò)后,對(duì)傳遞的表達(dá)式求值 |
| setInerval(interval) | 指定周期性執(zhí)行代碼 |
| moveTo(x,y) | 將對(duì)話框移動(dòng)到指定坐標(biāo) |
| moveBy(offsetx,offsety) | 將對(duì)話框移動(dòng)到指定的位移量處 |
| resizeTo(x,y) | 設(shè)置對(duì)話框大小 |
| resizeBy(offsetx,offsety) | 按照指定的位移量設(shè)置對(duì)話框大小 |
| print() | “打印” |
| navigate(URL) | 使用對(duì)話框顯示URL指定的頁(yè)面 |
3、如何使用
JS運(yùn)行使用一個(gè)字符串來(lái)給窗口命名,也可以使用一些關(guān)鍵字來(lái)代替。
Window對(duì)象可以直接調(diào)用方法和屬性,不需要使用new運(yùn)算符來(lái)創(chuàng)建對(duì)象:
window.屬性名 window.方法名(參數(shù)列表) //////////////////////////////// // 使用關(guān)鍵字來(lái)代替window // parent.屬性名 parent.方法名(參數(shù)列表)
二、對(duì)話框
為了響應(yīng)用戶的某種需求而彈出的小窗口
1、警告對(duì)話框——alert()
語(yǔ)法如下:
window.alert(str);
彈出警告對(duì)話框,str為對(duì)話框顯示的字符串,一般運(yùn)行結(jié)果如下:

2、確認(rèn)對(duì)話框——confrim()
語(yǔ)法如下:
window.confrim(question);
其中question是要顯示在確認(rèn)對(duì)話框的純文本,也是表達(dá)了程序想讓用戶回答的問(wèn)題
而且他有一個(gè)返回值,如果單擊了確定返回真、反之為假。
比如下面的這段小程序:
<script>
var flag = window.confirm("你確定要關(guān)閉瀏覽器窗口嗎?");
if(flag)
window.close();
</script>
會(huì)展示下面的結(jié)果:

3、提示對(duì)話框——prompt()
彈出一個(gè)提示框,在提示框中有一個(gè)輸入框,在顯示輸入框的時(shí)候,在輸入框內(nèi)顯示提示字符串,在輸入文本框顯示缺省文本并等待用戶輸入,輸入之后,單擊確定返回用戶輸入的字符串,如果是取消則返回null值
語(yǔ)法如下:
window.prompt(str1,str2)
參數(shù)說(shuō)明:其中str1表示在對(duì)話框要被顯示的信息,str2指定對(duì)話框內(nèi)輸入框的值。
比如下面這段小程序:
<script>
function pro() {
var message = document.getElementById("message");
message.value = window.prompt(message.value,"返回的信息")
}
</script>
<input id="message" type="text" size="40" value="請(qǐng)?jiān)诖溯斎胄畔?>
<br><br>
<input type="button" value="顯示對(duì)話框" onClick="pro()">
效果如下:

三、打開(kāi)與關(guān)閉窗口
1、打開(kāi)窗口——open()
語(yǔ)法格式:
WindowVar = window.open(url,name,[location])
參數(shù)說(shuō)明:
WindowVar:如果open方法成功,返回一個(gè)Window對(duì)象的句柄。url目標(biāo)窗口的URLname:目標(biāo)窗口Window對(duì)象名稱location:大考窗口的可選參數(shù)
他的可選參數(shù),如下表所示:
| 參數(shù) | 說(shuō)明 |
|---|---|
| top | 窗口頂部距離屏幕頂部的像素?cái)?shù) |
| left | 窗口左端距離屏幕左端的像素?cái)?shù) |
| width/height | 寬度/高度 |
| scrollbars | 是否顯示滾動(dòng)條 |
| resizable | 設(shè)定對(duì)話框大小是否固定 |
| toolbar | 瀏覽器的工具條,包括后退及前進(jìn)按鈕 |
| menubar | 菜單條,一般包括有文件、編輯及其他一些條目 |
| location | 定位區(qū),地址欄 |
| direction | 更新信息的按鈕 |
下面舉幾個(gè)例子:
打開(kāi)一個(gè)新窗口:window.open("new.html","new")
打開(kāi)一個(gè)指定大小的窗口:window.open("new.html","new","height=140,width=690")
打開(kāi)一個(gè)指定位置的窗口:window.open("new.html","new","top=300,left=200")
打開(kāi)一個(gè)帶滾動(dòng)條的固定窗口:window.open("new.html","new","scrollbars,resizable")
2、關(guān)閉窗口
(1)關(guān)閉當(dāng)前窗口
下面任意語(yǔ)句可以實(shí)現(xiàn)關(guān)閉當(dāng)前窗口:
window.close(); close(); this.close();
例子:關(guān)閉子窗口時(shí)自動(dòng)刷新父窗口
步驟1: 在原來(lái)的頁(yè)面,懟一個(gè)<a>鏈接,用于打開(kāi)一個(gè)新窗口,代碼如下:
<a href="#" rel="external nofollow" onClick="javascript:window.open('new.html','width=400,height=220')">打開(kāi)鏈接</a>
步驟2: 新建new.html,然后寫入腳本和一個(gè)按鈕,代碼如下:
<script>
function clo() {
alert("關(guān)閉子窗口!");
window.opener.location.reload(); //刷新父窗口
window.close();
}
</script>
<input type="submit" value="關(guān)閉" onclick="clo()">
效果如下:

(2)關(guān)閉子窗口
通過(guò)窗口句柄以變量的形式進(jìn)行保存,然后通過(guò)close方法關(guān)閉創(chuàng)建的窗口,語(yǔ)法如下:
windowname.close();
其中windowname表示已打開(kāi)窗口的句柄
例如,在主窗口旁邊彈出一個(gè)子窗口,當(dāng)單擊主窗口的按鈕后,自動(dòng)關(guān)閉子窗口,代碼如下:
<form name="form1">
<input type="button" name="Button" value="關(guān)閉子窗口" onclick="newclose()">
</form>
<script>
var win = window.open("new.html","new","width=300,height=100");
function newclose() {
win.close();
}
</script>
效果如下:

四、控制窗口
1、移動(dòng)窗口
(1)moveTo()方法
語(yǔ)法如下:
window.moveTo(x,y);
其中x,y是窗口左上角的坐標(biāo),
(2)resizeTo()方法
這個(gè)方法可以將當(dāng)前窗口改成(x,y)大小,x、y分別代表寬度和高度,語(yǔ)法如下:
window.resizeTo(x,y);
(3)screen對(duì)象
屏幕對(duì)象反映了當(dāng)前用戶的屏幕設(shè)置,下表列出了屏幕對(duì)象的一些屬性:
| 屬性 | 說(shuō)明 |
|---|---|
| width | 整個(gè)屏幕的水平尺寸 |
| height | 整個(gè)屏幕的垂直尺寸 |
| pixelDepth | 顯示器每個(gè)像素的位數(shù) |
| colorDepth | 返回當(dāng)前顏色設(shè)置所用的位數(shù),1代表黑白;8代表256色(256種顏色);16代表增強(qiáng)色(大概64000種顏色);24/32代表真彩色(1600萬(wàn)種顏色) |
| availWidth | 返回窗口內(nèi)容區(qū)域的水平尺寸 |
| availHeight | 返回川康內(nèi)容區(qū)域的垂直尺寸 |
2、窗口滾動(dòng)
利用Window對(duì)象的scroll()方法可以指定窗口的當(dāng)前位置,從而實(shí)現(xiàn)窗口的滾動(dòng)效果,語(yǔ)法如下:
window.scroll(x,y); //滾動(dòng)到指定的絕對(duì)位置,相對(duì)文檔的左上角 window.scrollTo(x,y); //同上 window.scrollBy(x,y); /*可以將文檔滾動(dòng)到相對(duì)位置,如果參數(shù)x為正數(shù),向右滾動(dòng),否則向左;如果參數(shù)y為正數(shù)向下滾動(dòng),否則向上*/
比如選擇一張我們的女神江疏影把圖片拉大,然后寫腳本:
<img src="1.jpg" height="1000">
<script>
var pos = 0;
function scroller() {
pos++;
scrollTo(0,pos);
clearTimeout(timer);
var timer = setTimeout("scroller()",10);
}
scroller();
效果如下:(太美啦?。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。?br />

3、改變窗口大小
實(shí)現(xiàn)將當(dāng)前窗口改變?yōu)橹付ǖ拇笮?code>(x,y),當(dāng)x,y>0為擴(kuò)大,反之為縮小,語(yǔ)法如下:
window.resizeBy(x,y);
例子:動(dòng)態(tài)改變窗口大小
代碼如下:
<script>
var winheight,winsize,x;
function openwin() {
winheight=100;
winsize=100;
x=5;
win2 = window.open("new.html","","scrollbars='no'");
win2.moveTo(0,0);
win2.resizeTo(100,100);
resize();
}
function resize() {
if(winheight>=screen.availHeight-3)
x=0;
win2.resizeBy(5,x);
winheight+=5;
winsize+=5;
if(winsize>=screen.width-5){
winheight=100;
winsize=100;
return;
}
setTimeout("resize()",50);
}
</script>
<a href="javascript:openwin()" rel="external nofollow" >打開(kāi)一個(gè)自動(dòng)改變大小的窗口</a>
效果如下:

4、訪問(wèn)窗口歷史
利用history對(duì)象實(shí)現(xiàn)訪問(wèn)窗口歷史,history對(duì)象是一個(gè)只讀URL字符串?dāng)?shù)組,主要存儲(chǔ)一個(gè)最近訪問(wèn)網(wǎng)頁(yè)的URL地址列表。語(yǔ)法如下:
[window.]history.property|method([parameters])
history對(duì)象常用屬性:
| 屬性 | 說(shuō)明 |
|---|---|
| length | 歷史列表的長(zhǎng)度,用于判斷列表中的入口數(shù)目 |
| current | 當(dāng)前文檔的URL |
| next | 歷史列表的下一個(gè)URL |
| previous | 歷史列表的前一個(gè)URL |
常用方法:
| 方法 | 說(shuō)明 |
|---|---|
| back() | 退回前一頁(yè) |
| forward() | 重新進(jìn)入下一頁(yè) |
| go() | 進(jìn)入指定網(wǎng)頁(yè) |
比如使用history對(duì)象中的back()和forward()方法來(lái)引導(dǎo)跳轉(zhuǎn):
<a href="javascript:window.history.forward();" rel="external nofollow" >forward</a> <a href="javascript:window.history.back()" rel="external nofollow" >back</a>
使用history.go()方法指定要訪問(wèn)的歷史記錄,如果參數(shù)為正數(shù)向前移動(dòng),否則向后移動(dòng)
<a href="javascript:window.history.go(-1)" rel="external nofollow" >向后退一次</a> <a href="javascript:window.history.go(2)" rel="external nofollow" >向前進(jìn)兩次</a>
length屬性訪問(wèn)history數(shù)組的長(zhǎng)度,通過(guò)它可以很快訪問(wèn)末尾:
<a href="javascript:window.history.go(window.history.length-1)" rel="external nofollow" >末尾</a>
5、設(shè)置超時(shí)
為一個(gè)窗口設(shè)置在某段時(shí)間后執(zhí)行何種操作,稱為設(shè)置超時(shí)
window對(duì)象的setTimeout()方法用于設(shè)一個(gè)超時(shí),語(yǔ)法如下:
timerId = setTimeout(要執(zhí)行的代碼,以毫秒為單位時(shí)間)
還可以使用clearTimeout()來(lái)中止該超時(shí)設(shè)置,語(yǔ)法格式如下:
clearTimeout(timerId);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
鼠標(biāo)懸浮停留三秒后自動(dòng)顯示大圖js代碼
這篇文章主要介紹了鼠標(biāo)懸浮停留三秒后顯示大圖,在網(wǎng)頁(yè)中還是比較實(shí)用的,下面是示例代碼2014-09-09
JavaScript模擬實(shí)現(xiàn)Promise功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了JavaScript如何模擬實(shí)現(xiàn)Promise功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)JavaScript有一定的幫助,需要的可以參考一下2022-12-12
JS樹(shù)形菜單組件Bootstrap TreeView使用方法詳解
這篇文章主要為大家詳細(xì)介紹了js組件Bootstrap TreeView使用方法,本文一部分針對(duì)于bootstrap的treeview的實(shí)踐,另一部分是介紹自己寫的樹(shù)形菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
JS實(shí)現(xiàn)短信驗(yàn)證碼一鍵登錄功能
短信驗(yàn)證碼一鍵登錄是一種方便快捷的登錄方式,本文介紹了其原理并給出了一個(gè)簡(jiǎn)單的JavaScript示例,感興趣的朋友跟隨小編一起看看吧2024-05-05
用JavaScript動(dòng)態(tài)建立或增加CSS樣式表的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇用JavaScript動(dòng)態(tài)建立或增加CSS樣式表的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
filters.revealTrans.Transition使用方法小結(jié)
有看到幻燈片調(diào)用會(huì)用到divid.filters.revealTrans.Transition=Math.floor(Math.random()*23)和divid.filters.revealTrans.apply(),那么這兩個(gè)都是什么意思呢?2010-08-08
JavaScript動(dòng)態(tài)創(chuàng)建form表單并提交的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript動(dòng)態(tài)創(chuàng)建form表單并提交的實(shí)現(xiàn)方法,涉及JavaScript動(dòng)態(tài)創(chuàng)建頁(yè)面元素及模擬表單提交的技巧,需要的朋友可以參考下2015-12-12

