js刪除history指定記錄「location.replace算不算跳轉」

location 對象是最有用的 BOM 對象之一,它提供了與當前窗口中加載的文檔有關的信息,還提供了一些導航功能。事實上,location 對象是很特別的一個對象,因為它既是 window 對象的屬性,也是 document 對象的屬性,換句話說,window.location 和 document.location 引用的是同一個對象。location 對象的用處不只表現在它保存着當前文檔信息,還表現在它將 URL 解析為獨立的片段,讓開發人員可以通過不同的屬性訪問這些片段。帶你走進JavaScript世界系列——location對象

location 對象的屬性列表

查詢字符串參數

雖然通過上面的屬性可以訪問到 location 對象的大多數信息,但其中訪問 URL 包含的查詢字符串的屬性並不方便。儘管 location.search 返回從問號到 URL 末尾的所有內容,但卻沒有辦法逐個訪問其中的每個字符串參數。因此,可以像下面這樣創建一個函數,用於解析查詢字符串,然後返回所有參數的一個對象:帶你走進JavaScript世界系列——location對象

獲取查詢字符串通用函數

位置操作

使用 location 對象可以通過很多方式來改變瀏覽器的位置。首先,也是最常用的方式,就是使用 assign() 方法並為其傳遞一個 URL ,如下:帶你走進JavaScript世界系列——location對象

assign() 方法示例

上面的代碼可以立即打開新的 URL 並在瀏覽器的歷史記錄中生成一條記錄。如果是將 location.href 或 window.location 設置為一個 URL 值,也會以該值調用 assign() 方法。下面的代碼與顯式調用 assign() 方法效果完全一樣:帶你走進JavaScript世界系列——location對象

window.location 和 location.href

在這些改變瀏覽器位置的方法中,最常用的是設置 location.href 屬性

另外,修改 location 對象的其他屬性也可以改變當前加載的頁面,下面將展示修改屬性來改變 URL 值:帶你走進JavaScript世界系列——location對象

location 中一些其他屬性的修改

上述任何一種方式修改 URL 之後,瀏覽器的歷史記錄中就會生成一條新記錄,因此可以通過瀏覽器的 “後退” 按鈕回到前一個頁面。要禁止這種行為,可以使用 replace() 方法。這個方法只接收一個參數,即需要導航到的 URL,結果會使瀏覽器位置改變,但不會在歷史記錄中生成記錄,在調用 replace() 方法之後,就不能回到前一個頁面了,例:帶你走進JavaScript世界系列——location對象

location.replace() 方法示例

與位置有關的最後一個方法是 reload() ,其作用是重新加載當前顯示的頁面。如果調用 reload() 時不傳遞任何參數,頁面就會以最有效的方式重新加載,如果頁面從上次請求以來並沒有改變過,頁面就會從瀏覽器緩存中重新加載。如果需要強制從服務器重新加載,可以給該方法傳遞參數 true :帶你走進JavaScript世界系列——location對象

reload() 方法示例

位於 reload() 調用之後的代碼可能會也可能會不執行,這主要取決於當時網絡狀態或系統資源等,因此,最好將 reload() 放在代碼最後一行。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/273580.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-17 14:07
下一篇 2024-12-17 14:07

相關推薦

發表回復

登錄後才能評論