浏览器对象
1:window
window對(duì)象不但充當(dāng)全局作用域,而且表示瀏覽器窗口。
window對(duì)象有innerWidth和innerHeight屬性,可以獲取瀏覽器窗口的內(nèi)部寬度和高度。內(nèi)部寬高是指除去菜單欄、工具欄、邊框等占位元素后,用于顯示網(wǎng)頁的凈寬高。
兼容性:IE<=8不支持。
'use strict';// 可以調(diào)整瀏覽器窗口大小試試:
alert('window inner size: ' + window.innerWidth + ' x ' + window.innerHeight);
2:navigator
navigator對(duì)象表示瀏覽器的信息,最常用的屬性包括:
- navigator.appName:瀏覽器名稱;
- navigator.appVersion:瀏覽器版本;
- navigator.language:瀏覽器設(shè)置的語言;
- navigator.platform:操作系統(tǒng)類型;
- navigator.userAgent:瀏覽器設(shè)定的User-Agent字符串。
'use strict'
alert('appName = ' + navigator.appName + '\n' +
'appVersion = ' + navigator.appVersion + '\n' +
'language = ' + navigator.language + '\n' +
'platform = ' + navigator.platform + '\n' +
'userAgent = ' + navigator.userAgent);
請(qǐng)注意,navigator的信息可以很容易地被用戶修改,所以JavaScript讀取的值不一定是正確的。很多初學(xué)者為了針對(duì)不同瀏覽器編寫不同的代碼,喜歡用if判斷瀏覽器版本,例如:
var width; if (getIEVersion(navigator.userAgent) < 9) {width = document.body.clientWidth; } else { width = window.innerWidth; }但這樣既可能判斷不準(zhǔn)確,也很難維護(hù)代碼。正確的方法是充分利用JavaScript對(duì)不存在屬性返回undefined的特性,直接用短路運(yùn)算符||計(jì)算:
var width = window.innerWidth || document.body.clientWidth;3:Screen
screen對(duì)象表示屏幕的信息,常用的屬性有:
- screen.width:屏幕寬度,以像素為單位;
- screen.height:屏幕高度,以像素為單位;
- screen.colorDepth:返回顏色位數(shù),如8、16、24。
4:location
location對(duì)象表示當(dāng)前頁面的URL信息。
可以用location.href獲取。要獲得URL各個(gè)部分的值,可以這么寫:
location.protocol; // 'http' location.host; // 'www.example.com' location.port; // '8080' location.pathname; // '/path/index.html' location.search; // '?a=1&b=2' location.hash; // 'TOP''use strict';
if (confirm('重新加載當(dāng)前頁' + location.href + '?')) {
location.reload();
} else {
location.assign('/discuss'); // 設(shè)置一個(gè)新的URL地址
}
?
5:document
document對(duì)象表示當(dāng)前頁面。由于HTML在瀏覽器中以DOM形式表示為樹形結(jié)構(gòu),document對(duì)象就是整個(gè)DOM樹的根節(jié)點(diǎn)。
document的title屬性是從HTML文檔中的<title>xxx</title>讀取的,但是可以動(dòng)態(tài)改變:
document對(duì)象還有一個(gè)cookie屬性,可以獲取當(dāng)前頁面的Cookie。
Cookie是由服務(wù)器發(fā)送的key-value標(biāo)示符。因?yàn)镠TTP協(xié)議是無狀態(tài)的,但是服務(wù)器要區(qū)分到底是哪個(gè)用戶發(fā)過來的請(qǐng)求,就可以用Cookie來區(qū)分。當(dāng)一個(gè)用戶成功登錄后,服務(wù)器發(fā)送一個(gè)Cookie給瀏覽器,例如user=ABC123XYZ(加密的字符串)...,此后,瀏覽器訪問該網(wǎng)站時(shí),會(huì)在請(qǐng)求頭附上這個(gè)Cookie,服務(wù)器根據(jù)Cookie即可區(qū)分出用戶。
Cookie還可以存儲(chǔ)網(wǎng)站的一些設(shè)置,例如,頁面顯示的語言等等。
JavaScript可以通過document.cookie讀取到當(dāng)前頁面的Cookie
為了確保安全,服務(wù)器端在設(shè)置Cookie時(shí),應(yīng)該始終堅(jiān)持使用httpOnly
history對(duì)象保存了瀏覽器的歷史記錄,JavaScript可以調(diào)用history對(duì)象的back()或forward (),相當(dāng)于用戶點(diǎn)擊了瀏覽器的“后退”或“前進(jìn)”按鈕。
這個(gè)對(duì)象屬于歷史遺留對(duì)象,對(duì)于現(xiàn)代Web頁面來說,由于大量使用AJAX和頁面交互,簡單粗暴地調(diào)用history.back()可能會(huì)讓用戶感到非常憤怒。
新手開始設(shè)計(jì)Web頁面時(shí)喜歡在登錄頁登錄成功時(shí)調(diào)用history.back(),試圖回到登錄前的頁面。這是一種錯(cuò)誤的方法。
任何情況,你都不應(yīng)該使用history這個(gè)對(duì)象了。
?
??
轉(zhuǎn)載于:https://www.cnblogs.com/dragonh/p/6295915.html
總結(jié)
- 上一篇: 配置Struts2的异常处理
- 下一篇: ASP从HTML标签中提取中文