window.location.hash 屬性使用說(shuō)明
更新時(shí)間:2010年03月20日 22:43:49 作者:
location是javascript里邊管理地址欄的內(nèi)置對(duì)象,比如location.href就管理頁(yè)面的url,用location.href=url就可以直接將頁(yè)面重定向url。而location.hash則可以用來(lái)獲取或設(shè)置頁(yè)面的標(biāo)簽值。
比如http://domain/#admin的location.hash="#admin"。利用這個(gè)屬性值可以做一個(gè)非常有意義的事情。
很多人都喜歡收藏網(wǎng)頁(yè),以便于以后的瀏覽。不過(guò)對(duì)于Ajax頁(yè)面來(lái)說(shuō)的話,一般用一個(gè)頁(yè)面來(lái)處理所有的事務(wù),也就是說(shuō),如果你瀏覽到一個(gè)Ajax頁(yè)面里邊有意思的內(nèi)容,想將它收藏起來(lái),可是地址只有一個(gè)呀,下次你打開(kāi)這個(gè)地址,還是得像以往一樣不斷地去點(diǎn)擊網(wǎng)頁(yè),找到你鐘情的那個(gè)頁(yè)面。另外的話,瀏覽器上的“前進(jìn)”“后退”按鈕也會(huì)失效,這于很多習(xí)慣了傳統(tǒng)頁(yè)面的用戶來(lái)說(shuō),是一個(gè)很大的使用障礙。
那么,怎么用location.hash來(lái)解決這兩個(gè)問(wèn)題呢?其實(shí)一點(diǎn)也不神秘。
比如,我的作者管理系統(tǒng),主要功能有三個(gè):普通搜索、高級(jí)搜索、后臺(tái)管理,我分別給它們分配一個(gè)hash值:#search、#advsearch、#admin,在頁(yè)面初始化的時(shí)候,通過(guò)window.location.hash來(lái)判斷用戶需要訪問(wèn)的頁(yè)面,然后通過(guò)javascript來(lái)調(diào)整顯示頁(yè)面。比如:
var hash;
hash=(!window.location.hash)?"#search":window.location.hash;
window.location.hash=hash;
//調(diào)整地址欄地址,使前進(jìn)、后退按鈕能使用
switch(hash){
case "#search":
selectPanel("pnlSearch"); //顯示普通搜索面板
break;
case "#advsearch":
case "#admin":
}
通過(guò)window.location.hash=hash這個(gè)語(yǔ)句來(lái)調(diào)整地址欄的地址,使得瀏覽器里邊的“前進(jìn)”、“后退”按鈕能正常使用(實(shí)質(zhì)上欺騙了瀏覽器)。然后再根據(jù)hash值的不同來(lái)顯示不同的面板(用戶可以收藏對(duì)應(yīng)的面板了),這就使得Ajax頁(yè)面的瀏覽趨于傳統(tǒng)化了。
很多人都喜歡收藏網(wǎng)頁(yè),以便于以后的瀏覽。不過(guò)對(duì)于Ajax頁(yè)面來(lái)說(shuō)的話,一般用一個(gè)頁(yè)面來(lái)處理所有的事務(wù),也就是說(shuō),如果你瀏覽到一個(gè)Ajax頁(yè)面里邊有意思的內(nèi)容,想將它收藏起來(lái),可是地址只有一個(gè)呀,下次你打開(kāi)這個(gè)地址,還是得像以往一樣不斷地去點(diǎn)擊網(wǎng)頁(yè),找到你鐘情的那個(gè)頁(yè)面。另外的話,瀏覽器上的“前進(jìn)”“后退”按鈕也會(huì)失效,這于很多習(xí)慣了傳統(tǒng)頁(yè)面的用戶來(lái)說(shuō),是一個(gè)很大的使用障礙。
那么,怎么用location.hash來(lái)解決這兩個(gè)問(wèn)題呢?其實(shí)一點(diǎn)也不神秘。
比如,我的作者管理系統(tǒng),主要功能有三個(gè):普通搜索、高級(jí)搜索、后臺(tái)管理,我分別給它們分配一個(gè)hash值:#search、#advsearch、#admin,在頁(yè)面初始化的時(shí)候,通過(guò)window.location.hash來(lái)判斷用戶需要訪問(wèn)的頁(yè)面,然后通過(guò)javascript來(lái)調(diào)整顯示頁(yè)面。比如:
復(fù)制代碼 代碼如下:
var hash;
hash=(!window.location.hash)?"#search":window.location.hash;
window.location.hash=hash;
//調(diào)整地址欄地址,使前進(jìn)、后退按鈕能使用
switch(hash){
case "#search":
selectPanel("pnlSearch"); //顯示普通搜索面板
break;
case "#advsearch":
case "#admin":
}
通過(guò)window.location.hash=hash這個(gè)語(yǔ)句來(lái)調(diào)整地址欄的地址,使得瀏覽器里邊的“前進(jìn)”、“后退”按鈕能正常使用(實(shí)質(zhì)上欺騙了瀏覽器)。然后再根據(jù)hash值的不同來(lái)顯示不同的面板(用戶可以收藏對(duì)應(yīng)的面板了),這就使得Ajax頁(yè)面的瀏覽趨于傳統(tǒng)化了。
您可能感興趣的文章:
- javascript-hashchange事件和歷史狀態(tài)管理實(shí)例分析
- 關(guān)于hashchangebroker和statehashable的補(bǔ)充文檔
- 小發(fā)現(xiàn)之淺談location.search與location.hash的問(wèn)題
- location.hash保存頁(yè)面狀態(tài)的技巧
- window.location.hash知識(shí)匯總
- window.location.hash 使用說(shuō)明
- 利用location.hash實(shí)現(xiàn)跨域iframe自適應(yīng)
- hash特點(diǎn)、hashchange事件介紹及其常見(jiàn)應(yīng)用場(chǎng)景
相關(guān)文章
js中火星坐標(biāo)、百度坐標(biāo)、WGS84坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)方法示例
這篇文章主要介紹了js中火星坐標(biāo)、百度坐標(biāo)、WGS84坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)方法,涉及JavaScript數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2020-03-03javascript下string.format函數(shù)補(bǔ)充
在上一篇中,自謙懶人的咚鏘留言指出樓豬改寫(xiě)的format函數(shù)在參數(shù)輸入11個(gè)后不起作用了2010-08-08原生JS實(shí)現(xiàn)隱藏顯示圖片 JS實(shí)現(xiàn)點(diǎn)擊切換圖片效果
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)隱藏顯示圖片,JS實(shí)現(xiàn)點(diǎn)擊切換圖片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07JavaScript對(duì)象屬性設(shè)置和屏蔽技巧
這篇文章主要為大家介紹了JavaScript對(duì)象屬性設(shè)置和屏蔽技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02