JavaScript中的Window窗口對象
他是JavaScript中最大的對象,它描述的是一個瀏覽器窗口。通常要引用它的屬性和方法時,不須要用「window.xxx」這種形式,而直接使用「xxx」。一個框架頁面也是一個窗口。
Window窗口對象有以下屬性:
javascript
- name 窗口的名稱,由打開它的鏈接(<a target="...">)或框架頁(<frame name="...">)或某一個窗口調用的 open() 方法(見下)決定。通常咱們不會用這個屬性。
- status 指窗口下方的「狀態欄」所顯示的內容。經過對 status 賦值,能夠改變狀態欄的顯示。
- opener 用法:window.opener;返回打開本窗口的窗口對象。注意:返回的是一個窗口對象。若是窗口不是由其餘窗口打開的,在 Netscape 中這個屬性返回 null;在 IE 中返回「未定義」(undefined)。undefined 在必定程度上等於 null。注意:undefined 不是 JavaScript 常數,若是你企圖使用「undefined」,那就真的返回「未定義」了。
- self 指窗口自己,它返回的對象跟 window 對象是如出一轍的。最經常使用的是「self.close()」,放在<a>標記中:「<a href="javascript:self.close()">關閉窗口</a>」。
- parent 返回窗口所屬的框架頁對象。
- top 返回佔據整個瀏覽器窗口的最頂端的框架頁對象。
- history 歷史對象,見下。
- location 地址對象,見下。
- document 文檔對象,見下。
Window窗口對象有以下方法:
第一個方法是open() 打開一個窗口。
用法:java
open(<URL字符串>, <窗口名稱字符串>, <參數字符串>);
說明:
小程序
- <URL字符串>:描述所打開的窗口打開哪個網頁。若是留空(''),則不打開任意網頁。
- <窗口名稱字符串>:描述被打開的窗口的名稱(window.name),可使用'_top'、'_blank'等內建名稱。這裏的名稱跟「<a href="..." target="...">」裏的「target」屬性是同樣的。
- <參數字符串>:描述被打開的窗口的樣貌。若是隻須要打開一個普通窗口,該字符串留空(''),若是要指定樣貌,就在字符串裏寫上一到多個參數,參數之間用逗號隔開。
例:打開一個 400 x 100 的乾淨的窗口:瀏覽器
open('','_blank','width=400,height=100,menubar=no,toolbar=no,
location=no,directories=no,status=no, scrollbars=yes,resizable=yes')
open()的參數
框架
- top=# 窗口頂部離開屏幕頂部的像素數
- left=# 窗口左端離開屏幕左端的像素數
- width=# 窗口的寬度
- height=# 窗口的高度
- menubar=... 窗口有沒有菜單,取值yes或no
- toolbar=... 窗口有沒有工具條,取值yes或no
- location=... 窗口有沒有地址欄,取值yes或no
- directories=... 窗口有沒有鏈接區,取值yes或no
- scrollbars=... 窗口有沒有滾動條,取值yes或no
- status=... 窗口有沒有狀態欄,取值yes或no
- resizable=... 窗口給不給調整大小,取值yes或no
注意:open() 方法有返回值,返回的就是它打開的窗口對象。好比ide
var newWindow = open('','_blank');
這樣把一個新窗口賦值到「newWindow」變量中,之後經過「newWindow」變量就能夠控制窗口了。
close() 關閉一個已打開的窗口。
用法:工具
window.close()
或插件
self.close()
主要做用是關閉本窗口;
<窗口對象>.close():關閉指定的窗口。注意若是該窗口有狀態欄,調用該方法後瀏覽器會警告:「網頁正在試圖關閉窗口,是否關閉?」而後等待用戶選擇是否;若是沒有狀態欄,調用該方法將直接關閉窗口。
另外Window窗口對象還有以下方法
對象
- blur() 使焦點從窗口移走,窗口變爲「非活動窗口」。
- focus() 是窗口得到焦點,變爲「活動窗口」。不過在 Windows 98,該方法只能使窗口的標題欄和任務欄上的相應按鈕閃爍,提示用戶該窗口正在試圖得到焦點。
- scrollTo() 用法:[<窗口對象>.]scrollTo(x, y);使窗口滾動,使文檔從左上角數起的(x, y)點滾動到窗口的左上角。
- scrollBy() 用法:[<窗口對象>.]scrollBy(deltaX, deltaY);使窗口向右滾動 deltaX 像素,向下滾動 deltaY 像素。若是取負值,則向相反的方向滾動。
- resizeTo() 用法:[<窗口對象>.]resizeTo(width, height);使窗口調整大小到寬 width 像素,高 height 像素。
- resizeBy() 用法:[<窗口對象>.]resizeBy(deltaWidth, deltaHeight);使窗口調整大小,寬增大 deltaWidth 像素,高增大 deltaHeight 像素。若是取負值,則減小。
- alert() 用法:alert(<字符串>);彈出一個只包含「肯定」按鈕的對話框,顯示<字符串>的內容,整個文檔的讀取、Script 的運行都會暫停,直到用戶按下「肯定」。
- confirm() 用法:confirm(<字符串>);彈出一個包含「肯定」和「取消」按鈕的對話框,顯示<字符串>的內容,要求用戶作出選擇,整個文檔的讀取、Script 的運行都會暫停。若是用戶按下「肯定」,則返回 true 值,若是按下「取消」,則返回 false 值。
- prompt() 用法:prompt(<字符串>[, <初始值>]);彈出一個包含「確認」「取消」和一個文本框的對話框,顯示<字符串>的內容,要求用戶在文本框輸入一些數據,整個文檔的讀取、Script 的運行都會暫停。若是用戶按下「確認」,則返回文本框裏已有的內容,若是用戶按下「取消」,則返回 null 值。若是指定<初始值>,則文本框裏會有默認值。
Window窗口對象有以下事件:
window. HTML 文件,並且包含的圖片,插件,控件,小程序等所有內容都下載完畢。本事件是 window 的事件,可是在 HTML 中指定事件處理程序的時候,咱們是把它寫在<body>標記中的。
window.onunload;發生在用戶退出文檔(或者關閉窗口,或者到另外一個頁面去)的時候。與 onload 同樣,要寫在 HTML 中就寫到<body>標記裏。
事件
- window.onresize;發生在窗口被調整大小的時候。
- window.onblur;發生在窗口失去焦點的時候。
- window.onfocus;發生在窗口獲得焦點的時候。
- window.onerror;發生在錯誤發生的時候。它的事件處理程序一般就叫作「錯誤處理程序」(Error Handler),用來處理錯誤。上邊已經介紹過,要忽略一切錯誤,就使用:
function ignoreError() { return true; } window.onerror = ignoreError;