国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript History對象原理解析

2024-05-06 15:44:34
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了javascript History對象原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

length

  history.length屬性保存著歷史記錄的URL數量。初始時,該值為1。由于IE10+瀏覽器在初始時返回2,存在兼容性問題,所以該值并不常用

跳轉方法

  go()、back()和forward()

  如果移動的位置超出了訪問歷史的邊界,以上三個方法并不報錯,而是靜默失敗

  [注意]使用歷史記錄時,頁面通常從瀏覽器緩存之中加載,而不是重新要求服務器發送新的網頁。不觸發onload

增改記錄

  HTML5為history對象添加了兩個新方法,history.pushState()和history.replaceState(),用來在瀏覽歷史中添加和修改記錄。state屬性用來保存記錄對象,而popstate事件用來監聽history對象的變化

  [注意]ie9不支持

 【pushState()】

    history.pushState()方法向瀏覽器歷史添加了一個狀態。pushState()方法帶有三個參數:一個狀態對象、一個標題(現在被忽略了)以及一個可選的URL地址

    history.pushState(state, title, url);

    state object —— 狀態對象是一個由pushState()方法創建的、與歷史紀錄相關的javascript對象。當用戶定向到一個新的狀態時,會觸發popstate事件。事件的state屬性包含了歷史紀錄的state對象。如果不需要這個對象,此處可以填null

    title —— 新頁面的標題,但是所有瀏覽器目前都忽略這個值,因此這里可以填null

    URL —— 這個參數提供了新歷史紀錄的地址。新URL必須和當前URL在同一個域,否則,pushState()將丟出異常。這個參數可選,如果它沒有被特別標注,會被設置為文檔的當前URL

    假定當前網址是example.com/1.html,使用pushState方法在瀏覽記錄(history對象)中添加一個新記錄

var stateObj = { foo: 'bar' };history.pushState(stateObj, 'page 2', '2.html');

    添加上面這個新記錄后,瀏覽器地址欄立刻顯示example.com/2.html,但并不會跳轉到2.html,甚至也不會檢查2.html是否存在,它只是成為瀏覽歷史中的最新記錄。假如這時訪問了google.com,然后點擊了倒退按鈕,頁面的url將顯示2.html,但是內容還是原來的1.html。再點擊一次倒退按鈕,url將顯示1.html,內容不變

    總之,pushState方法不會觸發頁面刷新,只是導致history對象發生變化,地址欄的顯示地址發生變化

    如果pushState的url參數,設置了一個新的錨點值(即hash),并不會觸發hashchange事件,,即使新的URL和舊的只在hash上有區別

    如果設置了一個跨域網址,則會報錯。這樣設計的目的是,防止惡意代碼讓用戶以為他們是在另一個網站上

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 龙口市| 卢龙县| 南康市| 嘉兴市| 万山特区| 西平县| 安达市| 于田县| 河西区| 古交市| 中山市| 石门县| 北碚区| 尼木县| 兴义市| 福清市| 四平市| 蒙城县| 余姚市| 温宿县| 正安县| 康平县| 剑河县| 循化| 关岭| 南京市| 信丰县| 聊城市| 九龙县| 景洪市| 南充市| 赤壁市| 北流市| 东兴市| 剑阁县| 乌苏市| 兰州市| 天津市| 科技| 藁城市| 多伦县|