摘要:對象不但充當全局作用域,而且表示瀏覽器窗口。對象有和屬性,可以獲取瀏覽器窗口的內部寬度和高度。對象表示當前頁面的信息。由于在瀏覽器中以形式表示為樹形結構,對象就是整個樹的根節點。這個行為由瀏覽器實現,主流瀏覽器均支持選項,從開始支持。
瀏覽器
目前主流的瀏覽器:
IE 6~11:從IE10開始支持ES6標準;
Chrome:基于Webkit內核,內置了非常強悍的JavaScript引擎——V8;
Safari:基于Webkit內核;
Firefox:Gecko內核,JavaScript引擎OdinMonkey;
不同的瀏覽器對JavaScript支持的差異主要是,有些API的接口不一樣,比如AJAX,File接口。對于ES6標準,不同的瀏覽器對各個特性支持也不一樣。
1.windowwindow對象不但充當全局作用域,而且表示瀏覽器窗口。
window對象有innerWidth和innerHeight屬性,可以獲取瀏覽器窗口的內部寬度和高度。內部寬高是指除去菜單欄、工具欄、邊框等占位元素后,用于顯示網頁的凈寬高。
對應的,還有一個outerWidth和outerHeight屬性,可以獲取瀏覽器窗口的整個寬高。
兼容性:IE<=8不支持。
navigator對象表示瀏覽器的信息,最常用的屬性包括:
navigator.appName:瀏覽器名稱; navigator.appVersion:瀏覽器版本; navigator.language:瀏覽器設置的語言; navigator.platform:操作系統類型; navigator.userAgent:瀏覽器設定的User-Agent字符串。
充分利用JavaScript對不存在屬性返回undefined的特性,直接用短路運算符||計算:
var width = window.innerWidth || document.body.clientWidth;3.screen
screen對象表示屏幕的信息,常用的屬性有:
screen.width:屏幕寬度,以像素為單位; screen.height:屏幕高度,以像素為單位; screen.colorDepth:返回顏色位數,如8、16、24。4.location
location對象表示當前頁面的URL信息。例如,一個完整的URL:
http://www.example.com:8080/p...
可以用location.href獲取。要獲得URL各個部分的值,可以這么寫:
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"
要加載一個新頁面,可以調用location.assign()。如果要重新加載當前頁面,調用location.reload()方法非常方便。
5.documentdocument對象表示當前頁面。由于HTML在瀏覽器中以DOM形式表示為樹形結構,document對象就是整個DOM樹的根節點。
document的title屬性是從HTML文檔中的
document.title = "努力學習JavaScript!";
請觀察瀏覽器窗口標題的變化。
用document對象提供的getElementById()和getElementsByTagName()可以按ID獲得一個DOM節點和按Tag名稱獲得一組DOM節點
document對象還有一個cookie屬性,可以獲取當前頁面的Cookie。
Cookie是由服務器發送的key-value標示符。因為HTTP協議是無狀態的,但是服務器要區分到底是哪個用戶發過來的請求,就可以用Cookie來區分。當一個用戶成功登錄后,服務器發送一個Cookie給瀏覽器,例如user=ABC123XYZ(加密的字符串)...,此后,瀏覽器訪問該網站時,會在請求頭附上這個Cookie,服務器根據Cookie即可區分出用戶。
Cookie還可以存儲網站的一些設置,例如,頁面顯示的語言等等。
JavaScript可以通過document.cookie讀取到當前頁面的Cookie:
document.cookie; // "v=123; remember=true; prefer=zh"
服務器在設置Cookie時可以使用httpOnly,設定了httpOnly的Cookie將不能被JavaScript讀取。這個行為由瀏覽器實現,主流瀏覽器均支持httpOnly選項,IE從IE6 SP1開始支持。
為了確保安全,服務器端在設置Cookie時,應該始終堅持使用httpOnly。
6.historyhistory對象保存了瀏覽器的歷史記錄,JavaScript可以調用history對象的back()或forward (),相當于用戶點擊了瀏覽器的“后退”或“前進”按鈕。
這個對象屬于歷史遺留對象,對于現代Web頁面來說,由于大量使用AJAX和頁面交互,簡單粗暴地調用history.back()可能會讓用戶感到非常憤怒。
新手開始設計Web頁面時喜歡在登錄頁登錄成功時調用history.back(),試圖回到登錄前的頁面。這是一種錯誤的方法。
任何情況,你都不應該使用history這個對象了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82003.html
摘要:用操作表單和操作是類似的,因為表單本身也是樹。因此,第二種方式是響應本身的事件,在提交時作修改可以在此修改的繼續下一步注意要來告訴瀏覽器繼續提交,如果,瀏覽器將不會繼續提交,這種情況通常對應用戶輸入有誤,提示用戶錯誤信息后終止提交。 用JavaScript操作表單和操作DOM是類似的,因為表單本身也是DOM樹。 HTML表單的輸入控件主要有以下幾種: 文本框,對應的,用于輸入文本; ...
摘要:例如,在一個中,刪掉偶數,只保留奇數,可以這么寫把一個中的空字符串刪掉,可以這么寫注意以下的版本沒有方法可見用這個高階函數,關鍵在于正確實現一個篩選函數。回調函數接收的回調函數,其實可以有多個參數。 1.map 由于map()方法定義在JavaScript的Array中,我們調用Array的map()方法,傳入我們自己的函數,就得到了一個新的Array作為結果: function po...
摘要:你可能認為調用,和結果應該是,,,但實際結果是全部都是原因就在于返回的函數引用了變量,但它并非立刻執行。返回閉包時牢記的一點就是返回函數不要引用任何循環變量,或者后續會發生變化的變量。真的是看著很暈那 閉包 另一個需要注意的問題是,返回的函數并沒有立刻執行,而是直到調用了f()才執行。我們來看一個例子: function count() { var arr = []; ...
摘要:在回調函數中,通常我們只需通過判斷請求是否完成,如果已完成,再根據判斷是否是一個成功的響應。因此我們需要首先在頁面中準備好回調函數當前價格最后用函數觸發表示本域,也就是瀏覽器當前頁面的域。 Asynchronous JavaScript and XML,意思就是用JavaScript執行異步網絡請求。 如果仔細觀察一個Form的提交,你就會發現,一旦用戶點擊Submit按鈕,表單開始提...
JSON JSON是JavaScript Object Notation的縮寫,它是一種數據交換格式。 道格拉斯·克羅克福特(Douglas Crockford)--雅虎的高級架構師--發明了JSON這種超輕量級的數據交換格式. 序列化 讓我們先把小明這個對象序列化成JSON格式的字符串: var xiaoming = { name: 小明, age: 14, gender...
閱讀 2686·2021-09-22 15:58
閱讀 2230·2019-08-29 16:06
閱讀 898·2019-08-29 14:14
閱讀 2810·2019-08-29 13:48
閱讀 2451·2019-08-28 18:01
閱讀 1495·2019-08-28 17:52
閱讀 3318·2019-08-26 14:05
閱讀 1610·2019-08-26 13:50