官术网_书友最值得收藏!

2.5.3 browserHistory事件處理

在browserHistory中,監聽popstate事件用以獲知瀏覽器地址的改變,如調用history.go,則單擊瀏覽器的“前進”和“后退”按鈕,通過window.location.hash改變hash等都會觸發popstate事件。在popstate事件中,browserHistory會更新其維護的地址信息并通知history的監聽者。注意,history.pushState、history.replaceState并不會觸發popstate事件。在源碼中,browserHistory在needsHashChangeListener為true時監聽了hashchange事件,源碼如下:

在功能職責上,browserHistory應該對URL的所有變化做出反應。相對于Chrome等瀏覽器hash變化會觸發popstate事件,在IE瀏覽器上,改變hash不會觸發popstate事件,而會觸發hashchange事件。因此,在IE瀏覽器上,即便是browserHistory,也需要對hashchange事件進行監聽,以應對URL的所有變化。

主站蜘蛛池模板: 隆安县| 临澧县| 琼中| 定州市| 托里县| 班玛县| 九江市| 大安市| 济源市| 响水县| 噶尔县| 繁昌县| 攀枝花市| 清丰县| 铜陵市| 宜都市| 安阳市| 凌源市| 克拉玛依市| 阿拉尔市| 孟村| 英德市| 隆化县| 海晏县| 宜川县| 疏附县| 永福县| 嘉荫县| 芒康县| 新巴尔虎左旗| 曲阜市| 富蕴县| 萨迦县| 阿鲁科尔沁旗| 荥阳市| 东丽区| 郧西县| 木里| 神池县| 绩溪县| 垫江县|