目錄javascript
window
概念window
對象,表示的是瀏覽器的一個實例,window
對象有兩重意義,一是做爲javascript
訪問瀏覽器的一個接口,二是做爲ECMAScript
規定的全局對象。html
在全局做用域下定義的變量和函數都會變成window
對象的屬性和方法。java
var age = 18; console.log(window.age); //18 var foo = function() { return 'foo' }; console.log(window.foo === foo); // true
全局變量與window
d對象的屬性存在兩點差異:web
delete
刪除,而直接在window
上定義的屬性能夠刪除。var age = 18; window.color = 'red'; delete window.color // true delete window.age //false
window
未定義屬性返回undefined
obj; // Uncaught ReferenceError: obj is not defined window.obj //underfined
screenTop
:窗口相對於上邊的位置
screenLeft
:窗口相對於左邊的位置
在FireFox 中,screenX
和screenY
屬性提供與上述相同的窗口位置信息。瀏覽器
var left = typeof (window.screenLeft === "number") ? window.screenLeft : window.screenX; var top = typeof (window.screenTop === "number") ? window.screenTop : window.screenY;
moveTo(x,y)
:移動窗口到固定位置,x、y分別表示新位置的座標
moveBy(x,y)
:將當前窗口移動到相對如今水平和垂直方向上的距離框架
outerWidth
和outerHeight
:瀏覽器窗口自己的寬、高。innerWidth
和innerHeight
:頁面視圖區對應寬、高。在IE9 如下,不支持以上屬性,不過 能夠經過DOM
提供頁面可見區域的相關信息。
document.documentElement.clientWidth
和 document.documentElement.clientHeight
提供頁面視口信息,不包括外邊距,邊框和垂直滾動條的距離。在IE6中,只有頁面在標準模式下,才支持這些屬性。在混雜模式下,必須經過documtent.body.clientWidth
和documtent.body.clientHeight
才能取得相同信息。函數
if (typeof pageWidth === "number") { // 判斷頁面是否處於標準模式 if (document.compatMode === "CSS1Compat") { pageWidth = document.documentElement.clientWidth; pageHeight = document.documentElement.clientHeight; } else { pageWidth = document.body.clientWidth; pageHeight = document.body.clientHeight; } }
resizeTo
:接收瀏覽器窗口新的寬度及高度resizeBy
:接收新窗口與原窗口的寬度和高度之差url
window.open()
導航到一個既定的url
,並返回一個指向新窗口的引用window.close()
關閉新打開的窗口,僅適用於經過window.open
打開的彈出窗口opener
:是window
對象的一個屬性,若是該窗口是使用window.open()
方法打開的,則指向打開它的原始對象,不然爲null
code
setTimeout
和 setInterval
setTimeout
即超時調用,在指定的時間事後執行代碼,接收兩個參數:要執行的代碼和以毫秒錶示的時間clearTimeout
:取消超時調用var timer = setTimeout(function() { console.log("settimeout"); }, 1000); clearTimeout(timer);
setInterval
:間歇性調用,傳入參數同setTimeout
,返回一個ID,可用於在未來某個時刻取消間歇調用
clearInterval
:取消間歇調用htm
var timer = setInterval(function() { console.log("setInterval"); }, 1000); clearInterval(timer);
alert()
:接收一個字符串並顯示一個對話框給用戶confirm()
:接收一個字符串,顯示一個確認對話框,並返回用戶單擊肯定按鈕的布爾值prompt()
:顯示「提示框」,接收兩個參數,要顯示給用戶的文本和輸入框默認值,該方法返回用戶輸入的值print()
:顯示打印對話框find()
:傳入一個字符串,返回在該頁面 查找結果的布爾值
top
對象始終指向最外層框架,也就是window
。
parent
指向當前框架的直接上層框架。
self
指向window
,二者能夠互換使用
每一個框架都擁有本身的window
對象,並保存在frames
集合中。在frames
集合中,能夠經過數值索引(從0
開始,從左到右,從上到下)或者框架名稱 來訪問相應的window
對象
<html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <frameset> <frame src="frame.html" name='topFrame'> <frameset cols="50% 50%"> <frame src="left.html" name='leftFrame'> <frame src="right.html" name='rightFrame'> </frameset> </frameset> </body> </html>
以上代碼中 建立了3個框架,若要訪問名爲topFrame
的框架,能夠經過如下方式:
window.frames[0]
window.frames["topFrame"]
frames[0]
frames["topFrame"]
top.frames[0]
top.frames["topFrame"]