1. 概述
Window 物件表示瀏覽器中開啟的視窗。
如果文檔包含框架(frame 或 iframe 標籤),瀏覽器會為 HTML 文檔建立一個 Window 物件,併為每個框架建立一個額外的 Window 物件。
Window物件表示一個瀏覽器視窗或一個框架。在用戶端 JavaScript 中,Window 物件是全局物件,所有的運算式都在當前的環境中計算。
可以透過 Window 來引用 Window 物件,通常情況下可以直接使用 Winodw下的方法。如可以只寫 document,而不必寫 window.document。
同樣,可以把當前視窗物件的方法當作函式來使用,如只寫 alert(),而不必寫 window.alert()。
2. 常用屬性
屬性 | 說明 |
---|---|
closed | 傳回視窗是否已被關閉 |
document | 對 Document 物件只讀引用 |
innerheight | 傳回視窗文檔顯示區高度 |
innerwidth | 傳回視窗文檔顯示區寬度 |
location | 用於視窗或框架的 Location 物件 |
name | 設定或傳回視窗名稱 |
parent | 傳回父視窗 |
top | 傳回最頂層的先輩視窗 |
3. 常用方法
方法 | 說明 |
---|---|
alert() | 顯示帶有一段訊息和一個確認按鈕的警告框。 |
setTimeout() | 在指定的毫秒數後呼叫函式或計算運算式 |
clearTimeout() | 取消由 setTimeout() 方法設定的 timeout |
setInterval() | 按照指定的週期(以毫秒計)來呼叫函式或計算運算式 |
clearInterval() | 取消由 setInterval() 設定的 timeout |
close() | 關閉瀏覽器視窗 |
confirm() | 顯示帶有一段訊息以及確認按鈕和取消按鈕的對話框 |
open() | 開啟一個新的瀏覽器視窗或尋找一個已命名的視窗 |
print() | 列印當前視窗的內容 |
prompt() | 顯示可提示使用者輸入對話框 |
scrollBy() | 按照指定的像素值來捲動內容 |
scrollTo() | 把內容捲動到指定的座標 |
4. 範例
4.1 close() 方法
方法 close() 將關閉有 window 指定的頂層瀏覽器視窗。某個視窗可以透過呼叫 self.close() 或只呼叫 close() 來關閉其自身。
4.2 alert()方法
顯示帶有一段訊息和一個確認按鈕的警告框,通常用來除錯,如:
alert("I am an alert box!!");
彈出框效果如下:
4.3 confirm() 方法
confirm() 方法用於顯示一個帶有指定訊息和 OK 及取消按鈕的對話框。
如果使用者點選確定按鈕,則 confirm() 傳回 true。如果點選取消按鈕,則 confirm() 傳回 false。
如:
< script type = "text/javascript" > function show_confirm() {
var r = confirm("Press a button!");
if (r == true) {
alert("You pressed OK!");
} else {
alert("You pressed Cancel!");
}
} < /script>
效果如下:
4.4 promt() 方法
prompt(text,defaultText)方法用於顯示可提示使用者進行輸入對話框。如果使用者按提示框的取消按鈕,則傳回 null。如果使用者按確認按鈕,則傳回輸入欄位當前顯示的正文。
如:
< script type = "text/javascript" > function disp_prompt() {
var name = prompt("請輸入您的名稱", "FR") if (name != null && name != "") {
document.write("你好," + name + "!")
}
} < /script>
效果如下:
4.5 open() 方法
window.open(URL,name,features,replace)開啟一個新的瀏覽器視窗或尋找一個已命名的視窗。參數如下:
參數 | 說明 |
---|---|
URL | 一個可選的字串,宣告瞭要在新視窗中顯示的文檔的 URL。如果省略了這個參數,或者它的值是空字串,那麼新視窗就不會顯示任何文檔。 |
name | 一個可選的字串,該字串是一個由逗號分隔的特徵列表,其中包括數字、字母和底線,該字元宣告瞭新視窗的名稱。這個名稱可以用作標記 'a' 和 'form' 的屬性 target 的值。如果該參數指定了一個已經存在的視窗,那麼 open() 方法就不再建立一個新視窗,而只是傳回對指定視窗的引用。在這種情況下,features 將被忽略。 |
features | 一個可選的字串,宣告瞭新視窗要顯示的標準瀏覽器的特徵。如果省略該參數,新視窗將具有所有標準特徵。 |
replace | 一個可選的布爾值。規定了裝載到視窗的 URL 是在視窗的瀏覽歷史中建立一個新條目,還是更換瀏覽歷史中的當前條目。支援下面的值: true - URL 更換瀏覽歷史中的當前條目。 false - URL 在瀏覽歷史中建立新的條目。 |
如:
window.open("https://help.fanruan.com/finereport/");
開啟 FineReport 說明文檔。
4.6 print() 方法
print() 方法用於列印當前視窗的內容。呼叫 print() 方法所引發的行為就像使用者按瀏覽器的列印按鈕。通常,這會產生一個對話框,讓使用者可以取消或客製列印請求。
如:
window.print();
效果如下:
4.7 setInterval()方法
setInterval() 方法可按照指定的週期(以毫秒計)來呼叫函式或計算運算式。直到 clearInterval() 被呼叫或視窗被關閉。
透過 setInterval(code,millisec)進行呼叫。參數說明如下:
參數 | 說明 |
---|---|
code | 必填,要呼叫的函式或要執行的程式碼串 |
millisec | 週期性執行或呼叫 code 之間的時間間隔,以毫秒計 |
如實現每 10 s 重新整理一次頁面,程式碼如下:
setInterval("self.location.reload();",10000); //10000ms 即每 10s 重新整理一次頁面。
詳細範例可查看:決策報表定時重新整理
4.8 setTimeout() 方法
setTimeout() 方法用於在指定的毫秒數後呼叫函式或計算運算式,使用 clearTimeout() 方法可阻止函式的執行。
一般如 setTimeout(function, milliseconds, param1, param2, ...)使用,參數說明如下:
參數 | 說明 |
---|---|
function | 必需,要呼叫一個程式碼串,也可以是一個函式 |
milliseconds | 必須,週期性執行或呼叫 code/function 之間的時間間隔,以毫秒計 |
param1, param2, ... | 可選, 傳給執行函式的其他參數(IE9 及其更早版本不支援該參數) |
報表中使用時,通常用於延遲執行,如 設定 button0 按鈕不可用,延遲 0.5s 執行。
setTimeout(function(){
_g().getWidgetByName("button0").setEnable(false);
}, 500);