window.location.hash在firefox下中文自動轉碼為UTF-8問題

GabrielChenCN發表於2016-01-26

1.window.location.hash

  window.location.hash這個屬性主要是讀取和寫入網頁位置的,我們經常會用來控制網頁單頁面跳轉或者是控制網頁位置。然而這個屬性在firefox下遇到中文時卻會被自動轉碼為UTF-8,這是火狐等相似瀏覽器對中文url的一些處理的不同。以下介紹一個方法可以fixed掉這個問題。

 

2.解碼函式

  前面已經提到,firefox喜歡幫我們把中文轉換成utf-8的編碼格式,那麼我們只用使用合適的解碼函式對其解碼皆可。

      javascript中有三個編碼函式escape,encodeURI,encodeURIComponent,而其對應相應解碼函式分別為:unescape,decodeURI,decodeURIComponent。

  因為其只會匹配相應編碼的字串,所以我們可以大膽的使用解碼函式,不用擔心未編碼的字串解碼出奇怪的資料。

  只需做如下處理便能解決這個問題:

  

var hash =decodeURIComponent(window.location.hash);

  

相關文章