Window 對象是 JavaScript 層級中的頂層對象。
Window 對象代表一個瀏覽器窗口或一個框架。
Window 對象會在 < body> 或 < frameset> 每次出現時被自動創建。
一、Window對象屬性
1.closed
返回窗口是否已被關閉
<script>
var myWindow = window.open('https://www.baidu.com/', '百度', 'width=500,height=500')
var loop = setInterval(function() {
if(myWindow.closed) {
clearInterval(loop);
alert('closed');
}
}, 1000);
</script>
2.frames
返回窗口中< iframe>框架集合。
<iframe src="./echo.xhtml" name="echo" width="400" height="300" scrolling="no"></iframe>
<iframe src="./index.xhtml"></iframe>
<script>
var frm = frames["echo"];
alert(frames.length)
alert(frm.location + '讀取不到,說明 iframe框架 在腳本執行完構建')
window.addEventListener("load", function() {
alert(frm.location)
alert(frm.name)
alert(frm.document.body.style.fontSize)
}, false);
</script>
3.defaultStatus
defaultStatus 屬性可設置或返回窗口狀態欄中的默認文本。該屬性可讀可寫。
該文本會在頁面加載時被顯示。
注意: defaultStatus屬性在IE,火狐,Chrome,和Safari默認配置是不能正常工作。要允許腳本來改變狀態欄文本,用戶必須把配置屏幕首選項設置爲false dom.disable_window_status_change。(或在Firefox:”工具 - 選項 - 內容 - 啓用的JavaScript /”高級” - 允許腳本更改狀態欄文本”)。
<script>
window.defaultStatus="這是默認狀態欄文本! !";
</script>
4.innerHeight 和 innerWidth
獲取窗口的高度與寬度(不包含工具條與滾動條)
注意:IE 8 及更早 IE版本不支持這兩個屬性。
var w=window.innerWidth;
var h=window.innerHeight;
5.outerHeight 和 outerWidth
outerHeight屬性設置或返回一個窗口的外部高度,包括所有界面元素(如工具欄/滾動條)。
outerWidth屬性設置或返回窗口的外部寬度,包括所有的界面元素(如工具欄/滾動)。
注意:IE 8 及更早 IE版本不支持這兩個屬性。
var w=window.outerWidth;
var h=window.outerHeight;
6.opener
opener 屬性是一個可讀可寫的屬性,可返回對創建該窗口的 Window 對象的引用。
opener 屬性非常有用,創建的窗口可以引用創建它的窗口所定義的屬性和函數。
注意:只有表示頂層窗口的 Window 對象的 operner 屬性纔有效,表示框架的 Window 對象的 operner 屬性無效。
<script type="text/javascript">
function parentFun() {
alert('調用創建MyName窗口 的窗口 的函數成功!(調用父級窗口函數)')
}
var myWindow = window.open('','MyName','width=200,height=100')
myWindow.opener.parentFun()
</script>
7.top
top 屬性返回最頂層的先輩窗口。
該屬性返回對一個頂級窗口的只讀引用。如果窗口本身就是一個頂級窗口,top 屬性存放對窗口自身的引用。如果窗口是一個框架,那麼 top 屬性引用包含框架的頂層窗口。
8.parent
parent屬性返回當前窗口的父窗口。
9.self
self 屬性可返回對窗口自身的只讀引用。等價於 Window 屬性。
//在頂層頁面打開url(跳出框架)
top.location.href = "url"
//在父窗口打開url地址
parent.location.href = "url"
//僅在本頁面打開url地址
self.location.href = "url"
實際中可能這樣使用,判斷當前location 是否爲頂層,來禁止frame引用。
if (top.location !== self.location) {}
10.document
對 Document 對象的只讀引用。
11.history
對 History 對象的只讀引用。
12.location
用於窗口或框架的 Location 對象。
13.navigator
對 Navigator 對象的只讀引用。
14.screen
對 Screen 對象的只讀引用。
二、Window對象方法
1.alert()
2.blur()
blur() 方法可把鍵盤焦點從頂層窗口移開。
3.focus()
focus() 方法可把鍵盤焦點給予一個窗口。
4.open()
open() 方法用於打開一個新的瀏覽器窗口或查找一個已命名的窗口。
window.open(URL,name,specs,replace)
參數 | 說明 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
URL | 可選。打開指定的頁面的URL。如果沒有指定URL,打開與新的空白窗口 | ||||||||||||||||||||||||||||
name | 可選。指定target屬性或窗口的名稱。支持以下值:
|
||||||||||||||||||||||||||||
specs | 可選。一個逗號分隔的項目列表。支持以下值:
| ||||||||||||||||||||||||||||
replace | Optional.Specifies規定了裝載到窗口的 URL 是在窗口的瀏覽歷史中創建一個新條目,還是替換瀏覽歷史中的當前條目。支持下面的值:
|
6.close()
close() 方法用於關閉瀏覽器窗口。
7.confirm(msg)
confirm()方法用於顯示一個帶有指定消息和確認及取消按鈕的對話框。
如果訪問者點擊”確定”,此方法返回true,否則返回false。
<script type="text/javascript">
deleteFun()
function deleteFun(){
if (window.confirm('確認刪除?')) {
alert('刪除了')
} else {
alert('暫時不刪了')
}
}
</script>
8.prompt(msg,defaultText)
prompt()方法用於顯示可提示用戶進行輸入的對話框。
這個方法返回用戶輸入的字符串。
<p>點擊按鈕查看輸入的對話框。</p>
<button onclick="myFunction()">點我</button>
<p id="demo"></p>
<script>
function myFunction() {
var x;
var person=prompt("請輸入你的名字", "Harry Potter");
if (person != null && person != "") {
x = "你好 " + person + "! 今天感覺如何?";
document.getElementById("demo").innerHTML = x;
}
}
</script>
9.setInterval()
setInterval() 方法可按照指定的週期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
<input type="text" id="clock" />
<script>
var flag = self.setInterval(function(){
document.getElementById("clock").value = new Date().toLocaleTimeString();
},1000);
</script>
10.clearInterval(id_of_setinterval)
clearInterval() 方法可取消由 setInterval() 設置的 timeout。
clearInterval() 方法的參數必須是由 setInterval() 返回的 ID 值。
clearInterval(flag)
11.setTimeout(code,millisec,lang)
setTimeout() 方法用於在指定的毫秒數後調用函數或計算表達式。
code | 必需。要調用的函數後要執行的 JavaScript 代碼串。 |
millisec | 必需。在執行代碼前需等待的毫秒數。 |
lang | 可選。腳本語言可以是:JScript | VBScript | JavaScript |
var t = setTimeout(function(){alert("Hello")}, 3000)
12.clearTimeout(id_of_settimeout)
clearTimeout() 方法可取消由 setTimeout() 方法設置的 timeout。
clearTimeout()方法的參數必須是由setTimeout()返回的ID值。
clearTimeout(t)
13.moveBy()、moveTo()、resizeBy()、resizeTo()、scrollBy()、scrollTo()
這些暫時沒有用到過,簡單測試了幾個,效果不是很理想,等用到了再做補充。
window.moveBy(x,y) | moveBy() 方法可相對窗口的當前座標把它移動指定的像素。 |
window.moveTo(x,y) | moveTo() 方法可把窗口的左上角移動到一個指定的座標。 |
resizeBy(width,height) | resizeBy() 方法用於根據指定的像素來調整窗口的大小。 注意: 此方法定義指定窗口的右下角角落移動的像素,左上角將不會被移動(它停留在其原來的座標). |
window.resizeTo(width,height) | 方法用於把窗口大小調整爲指定的寬度和高度。 |
scrollBy(xnum,ynum) | scrollBy() 方法可把內容滾動指定的像素數。 注意: 要使此方法工作 window 滾動條的可見屬性必須設置爲true! |
scrollTo(xpos,ypos) | scrollTo() 方法可把內容滾動到指定的座標。 |