使用JavaScript 更改瀏覽器URL 而不重新加載頁面
許多JavaScript 操作會影響當前頁面,但需要更改URL 以便以後參考或加書籤。此外,當使用「後退」按鈕時,希望恢復原始 URL。以下是實現此目的的方法:
選項1:使用片段識別碼(對於舊版瀏覽器)
對於不支援較新的history.pushState 和history .popState 的瀏覽器,有一種「舊」方法:利用片段標識符。此方法不需要重新載入頁面。
透過將包含所需狀態資訊的值指派給 window.location.hash 屬性,您可以有效地將狀態編碼到 URL 中。接下來,您需要使用 window.onhashchange 事件,或對於較舊的瀏覽器,定期輪詢雜湊值以偵測變更。根據頁面載入時的哈希值初始化頁面內容。
選項2:history.pushState和history.popState(現代瀏覽器)
在當代瀏覽器中, history.pushState 和history.popState 方法提供了一種更清晰、更健壯的方法。 history.pushState 允許您在不重新載入頁面的情況下更新 URL,而history.popState 則負責「後退」按鈕的處理。所有主要現代瀏覽器都支援此方法。
避免 ID 衝突
使用片段識別碼時,請注意與頁面上元素 ID 的潛在衝突。瀏覽器傾向於滾動到 ID 與雜湊值相符的任何元素,這可能會導致意外行為。
以上是如何使用 JavaScript 更改瀏覽器的 URL 而無需重新載入頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!