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