簡體   English   中英

歷史記錄事件-網址的hash(#)類型

[英]History event - hash(#) type of url

首先, 我對使用一些jquery插件不感興趣 我只想知道他們是如何實現的,所以我可以創建一個這樣的腳本。

在html5歷史記錄上,我們使用window.onpopstate事件檢測后退/前進瀏覽器事件。 我想要的是創建類似這樣的東西,以便可以將url哈希類型用於其他不支持html 5的瀏覽器

像這樣的東西:

if(history.pushState){
   //use html5 history event
   window.onpopstate = function(event){that.__loadCurrentLink();};
}else{
   //use the History event for other browser
   window.historyEvent = function(event){that.__loadCurrentLink();};        
}

你們能給我些提示或其他什么嗎,讓我知道如何做到這一點。

我這樣做只是出於學習目的,也是為了其他想知道如何做的人。 我希望一些JavaScript怪獸可以引導我們前進。

hashchange事件分配一個事件處理程序,並為較舊的瀏覽器使用setInterval每隔100毫秒等一次輪詢window.location.hash ,因此,當不支持hashchange時,您可以獲得相當多的最新哈希值。

我還建議編寫鏈接,按鈕等以調用在mouseup上檢查哈希的函數,這樣,當您單擊更改哈希的鏈接時,幾乎可以保證沒有延遲。

瀏覽器中的Hashchange支持: caniuse.com

IE7中沒有發生“哈希更改”時觸發的事件,此問題對此進行了更好的描述。

上-window.location.hash-更改?

由於您對“ jQuery解決方案”不感興趣,因此建議您閱讀IE7最佳答案的頂部。

許多較舊的瀏覽器本身並不支持哈希更改事件。 我相信jQuery將此功能抽象到其事件偵聽器中的方式是使用setInterval()不斷輪詢哈希更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM