screen對象
- screen對象基本上只用來表明客戶端的能力,其中包含瀏覽器窗口外部的顯示器信息抄瑟。如像素寬度和高度等。
- 每個瀏覽器中的screen對象,都包含著各不相同的屬性赘来。(屬性比較多现喳,不一一列舉了);
- 有時候犬辰,也可能會用到其中的信息來調(diào)整瀏覽器窗口的大小嗦篱,使其占據(jù)屏幕的可用空間,例如
window.resizeTo(screen.availWidth, screen.availHeight);
history對象
- history對象保存著用戶上網(wǎng)的歷史記錄幌缝,從窗口被打開那一刻算起灸促。
- 因為 history是window對象的屬性,因此每個瀏覽器窗口涵卵,每個標(biāo)簽頁乃至每個框架浴栽,都有自己的history對象與特定的window對象關(guān)聯(lián)。
- 出于安全考慮缘厢,開發(fā)人員無法得知用戶瀏覽過的URL吃度。不過,借用用戶訪問過的頁面列表贴硫,同樣可以在不知道實際URL的情況下實現(xiàn)后退和前進(jìn)椿每。
go()方法
- go()方法可以在用戶的歷史記錄中任意跳轉(zhuǎn),可以向前也可以向后英遭。
- 這個方法接收一個參數(shù)间护,表示向后或向前
跳轉(zhuǎn)頁面數(shù)
的一個整數(shù)值
。負(fù)數(shù)
表示向后跳轉(zhuǎn)(類似于單擊瀏覽器后退按鈕)挖诸,正數(shù)
表示向前跳轉(zhuǎn)(類似于單擊瀏覽器的前進(jìn)按鈕)
// 后退一頁
history.go(-1);
// 前進(jìn)一頁
history.go(1);
// 前進(jìn)兩頁
history.go(2)
- 還可以給go()方法傳遞一個字符串參數(shù)汁尺,此時瀏覽器會跳轉(zhuǎn)到歷史記錄中包含該字符串的第一個位置——可能后退,也可能前進(jìn)多律,具體要看哪個位置最近痴突。如果歷史記錄中不包含該字符串,那么go()方法什么都不做狼荞。例如:
// 跳轉(zhuǎn)到最近的wrox.com頁面
history.go("wrox.com");
- 另外還可以使用兩個簡寫方法
back()
和forward()
方法來代替go(). 顧名思義辽装,這兩個方法可以模仿瀏覽器的“后退”和“前進(jìn)”按鈕。
//后退一頁
history.back()
//前進(jìn)一頁
history.forward()
length屬性
- history對象還有一個
length
屬性相味,保存這歷史記錄的數(shù)量拾积。這個數(shù)量包括所有的歷史記錄,即所有向后和向前的記錄丰涉。
- 對于加載到窗口或框架中的第一個頁面而言拓巧,
history.length
等于0。通常像下面這樣測試該屬性的值一死,可以確定用戶是否一開始就打開了你的頁面肛度。
if(history.length === 0){
//這應(yīng)該是用戶打開窗口后的第一個頁面
}
當(dāng)頁面的URL改變時,就會生成一條歷史記錄投慈。在IE8以及更高版本承耿、Opera策吠、Firefox、Safari3以及更高版本以及Chrome中瘩绒,這里所說的改變包括URL中hash的變化(因此,設(shè)置location.hash會在這些瀏覽器中生成一條新的歷史記錄)