国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js溫故而知新8(瀏覽器)——學(xué)習(xí)廖雪峰的js教程

charles_paul / 1029人閱讀

摘要:對(duì)象不但充當(dāng)全局作用域,而且表示瀏覽器窗口。對(duì)象有和屬性,可以獲取瀏覽器窗口的內(nèi)部寬度和高度。對(duì)象表示當(dāng)前頁(yè)面的信息。由于在瀏覽器中以形式表示為樹形結(jié)構(gòu),對(duì)象就是整個(gè)樹的根節(jié)點(diǎn)。這個(gè)行為由瀏覽器實(shí)現(xiàn),主流瀏覽器均支持選項(xiàng),從開始支持。

瀏覽器

目前主流的瀏覽器:

IE 6~11:從IE10開始支持ES6標(biāo)準(zhǔn);

Chrome:基于Webkit內(nèi)核,內(nèi)置了非常強(qiáng)悍的JavaScript引擎——V8;

Safari:基于Webkit內(nèi)核;

Firefox:Gecko內(nèi)核,JavaScript引擎OdinMonkey;

不同的瀏覽器對(duì)JavaScript支持的差異主要是,有些API的接口不一樣,比如AJAX,F(xiàn)ile接口。對(duì)于ES6標(biāo)準(zhǔn),不同的瀏覽器對(duì)各個(gè)特性支持也不一樣。

1.window

window對(duì)象不但充當(dāng)全局作用域,而且表示瀏覽器窗口。

window對(duì)象有innerWidthinnerHeight屬性,可以獲取瀏覽器窗口的內(nèi)部寬度和高度。內(nèi)部寬高是指除去菜單欄、工具欄、邊框等占位元素后,用于顯示網(wǎng)頁(yè)的凈寬高。
對(duì)應(yīng)的,還有一個(gè)outerWidth和outerHeight屬性,可以獲取瀏覽器窗口的整個(gè)寬高。
兼容性:IE<=8不支持。

2.navigator

navigator對(duì)象表示瀏覽器的信息,最常用的屬性包括:

navigator.appName:瀏覽器名稱;
navigator.appVersion:瀏覽器版本;
navigator.language:瀏覽器設(shè)置的語(yǔ)言;
navigator.platform:操作系統(tǒng)類型;
navigator.userAgent:瀏覽器設(shè)定的User-Agent字符串。

充分利用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)前頁(yè)面的URL信息。例如,一個(gè)完整的URL:

http://www.example.com:8080/p...
可以用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"

要加載一個(gè)新頁(yè)面,可以調(diào)用location.assign()。如果要重新加載當(dāng)前頁(yè)面,調(diào)用location.reload()方法非常方便。

5.document

document對(duì)象表示當(dāng)前頁(yè)面。由于HTML在瀏覽器中以DOM形式表示為樹形結(jié)構(gòu),document對(duì)象就是整個(gè)DOM樹的根節(jié)點(diǎn)。

document的title屬性是從HTML文檔中的xxx讀取的,但是可以動(dòng)態(tài)改變:

document.title = "努力學(xué)習(xí)JavaScript!";

請(qǐng)觀察瀏覽器窗口標(biāo)題的變化。

用document對(duì)象提供的getElementById()getElementsByTagName()可以按ID獲得一個(gè)DOM節(jié)點(diǎn)和按Tag名稱獲得一組DOM節(jié)點(diǎn)

document對(duì)象還有一個(gè)cookie屬性,可以獲取當(dāng)前頁(yè)面的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è)置,例如,頁(yè)面顯示的語(yǔ)言等等。

JavaScript可以通過document.cookie讀取到當(dāng)前頁(yè)面的Cookie:

document.cookie; // "v=123; remember=true; prefer=zh"

服務(wù)器在設(shè)置Cookie時(shí)可以使用httpOnly,設(shè)定了httpOnly的Cookie將不能被JavaScript讀取。這個(gè)行為由瀏覽器實(shí)現(xiàn),主流瀏覽器均支持httpOnly選項(xiàng),IE從IE6 SP1開始支持。

為了確保安全,服務(wù)器端在設(shè)置Cookie時(shí),應(yīng)該始終堅(jiān)持使用httpOnly。

6.history

history對(duì)象保存了瀏覽器的歷史記錄,JavaScript可以調(diào)用history對(duì)象的back()或forward (),相當(dāng)于用戶點(diǎn)擊了瀏覽器的“后退”或“前進(jìn)”按鈕。

這個(gè)對(duì)象屬于歷史遺留對(duì)象,對(duì)于現(xiàn)代Web頁(yè)面來說,由于大量使用AJAX和頁(yè)面交互,簡(jiǎn)單粗暴地調(diào)用history.back()可能會(huì)讓用戶感到非常憤怒。

新手開始設(shè)計(jì)Web頁(yè)面時(shí)喜歡在登錄頁(yè)登錄成功時(shí)調(diào)用history.back(),試圖回到登錄前的頁(yè)面。這是一種錯(cuò)誤的方法。

任何情況,你都不應(yīng)該使用history這個(gè)對(duì)象了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/82003.html

相關(guān)文章

  • js故而知新10(操作表單)——學(xué)習(xí)雪峰js教程

    摘要:用操作表單和操作是類似的,因?yàn)楸韱伪旧硪彩菢洹R虼耍诙N方式是響應(yīng)本身的事件,在提交時(shí)作修改可以在此修改的繼續(xù)下一步注意要來告訴瀏覽器繼續(xù)提交,如果,瀏覽器將不會(huì)繼續(xù)提交,這種情況通常對(duì)應(yīng)用戶輸入有誤,提示用戶錯(cuò)誤信息后終止提交。 用JavaScript操作表單和操作DOM是類似的,因?yàn)楸韱伪旧硪彩荄OM樹。 HTML表單的輸入控件主要有以下幾種: 文本框,對(duì)應(yīng)的,用于輸入文本; ...

    simon_chen 評(píng)論0 收藏0
  • js故而知新3——學(xué)習(xí)雪峰js教程

    摘要:例如,在一個(gè)中,刪掉偶數(shù),只保留奇數(shù),可以這么寫把一個(gè)中的空字符串刪掉,可以這么寫注意以下的版本沒有方法可見用這個(gè)高階函數(shù),關(guān)鍵在于正確實(shí)現(xiàn)一個(gè)篩選函數(shù)。回調(diào)函數(shù)接收的回調(diào)函數(shù),其實(shí)可以有多個(gè)參數(shù)。 1.map 由于map()方法定義在JavaScript的Array中,我們調(diào)用Array的map()方法,傳入我們自己的函數(shù),就得到了一個(gè)新的Array作為結(jié)果: function po...

    zhaot 評(píng)論0 收藏0
  • js故而知新4——學(xué)習(xí)雪峰js教程

    摘要:你可能認(rèn)為調(diào)用,和結(jié)果應(yīng)該是,,,但實(shí)際結(jié)果是全部都是原因就在于返回的函數(shù)引用了變量,但它并非立刻執(zhí)行。返回閉包時(shí)牢記的一點(diǎn)就是返回函數(shù)不要引用任何循環(huán)變量,或者后續(xù)會(huì)發(fā)生變化的變量。真的是看著很暈?zāi)? 閉包 另一個(gè)需要注意的問題是,返回的函數(shù)并沒有立刻執(zhí)行,而是直到調(diào)用了f()才執(zhí)行。我們來看一個(gè)例子: function count() { var arr = []; ...

    genefy 評(píng)論0 收藏0
  • js故而知新11(AJAX)——學(xué)習(xí)雪峰js教程

    摘要:在回調(diào)函數(shù)中,通常我們只需通過判斷請(qǐng)求是否完成,如果已完成,再根據(jù)判斷是否是一個(gè)成功的響應(yīng)。因此我們需要首先在頁(yè)面中準(zhǔn)備好回調(diào)函數(shù)當(dāng)前價(jià)格最后用函數(shù)觸發(fā)表示本域,也就是瀏覽器當(dāng)前頁(yè)面的域。 Asynchronous JavaScript and XML,意思就是用JavaScript執(zhí)行異步網(wǎng)絡(luò)請(qǐng)求。 如果仔細(xì)觀察一個(gè)Form的提交,你就會(huì)發(fā)現(xiàn),一旦用戶點(diǎn)擊Submit按鈕,表單開始提...

    kun_jian 評(píng)論0 收藏0
  • js故而知新6(JSON)——學(xué)習(xí)雪峰js教程

    JSON JSON是JavaScript Object Notation的縮寫,它是一種數(shù)據(jù)交換格式。 道格拉斯·克羅克福特(Douglas Crockford)--雅虎的高級(jí)架構(gòu)師--發(fā)明了JSON這種超輕量級(jí)的數(shù)據(jù)交換格式. 序列化 讓我們先把小明這個(gè)對(duì)象序列化成JSON格式的字符串: var xiaoming = { name: 小明, age: 14, gender...

    20171112 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<