2010-03-01 76 views
23

我一直在瀏覽JQuery庫的URL哈希,但發現沒有那麼好。有「歷史插件」,但我們都知道它是越野車,並不靈活。什麼是最好的庫在JQuery中做URL哈希/歷史記錄?

我正在加載我的網頁內的div。我需要一種方法來跟蹤網址哈希。

mydomain.com/#home 
mydomain.com/#aboutus 
mydomain.com/#register 

什麼是最好的圖書館,可以處理所有這一切?

回答

25

我最近看了3個不同的插件 - jquery history plugin,historyjQuery BBQ

他們都很難設置,我確實讓jQuery.history工作,但它仍然有問題與IE7。所以我改成了BBQ,並且在我們所有的目標瀏覽器(IE6,IE7,IE8,Fx3)上運行良好。

所以我建議jQuery燒烤插件。

編輯:here's a blog post我剛剛寫了一個演示帶有級聯下拉菜單的jQuery BBQ。

-4

據我所知,所有的歷史插件做同樣的事情:

setInterval(function() { 
    if(theHashChanged) { 
     someFunction(oldHash,newHash); 
    } 
}, 500/*whatever*/); 

這是相當的核心,它(減去瀏覽器黑客添加歷史條目不點擊鏈接,等等)。它總是會有問題,因爲它有點破解,並且沒有用於處理歷史更改的跨瀏覽器API。

最重要的是,這類事情的用戶體驗不是很好。用戶不知道他們何時必須點擊後退按鈕4次才能離開頁面。

+1

-1:根本沒有幫助。而且,用戶何時期望後退按鈕將他們從網頁上移開?你只在衝浪網站上衝浪嗎? – nikow 2010-03-01 21:10:01

+1

@nikow它基於我在一個面向大衆的網站上的經驗。只是因爲你可以實現這樣的事情,並不意味着你應該這樣做。我真的不能想到一個單一的網站,這個功能比煩人更有幫助。 – noah 2010-03-01 21:18:24

+1

@nikow - 「自用戶期望後退按鈕將他們從頁面上取下時?」由於首先介紹的網頁和網頁瀏覽器,我會說;)。後退按鈕的正常功能當然是從當前頁面轉到前一頁面。 – 2010-03-01 21:36:46

0

我與reallysimplehistory(nee dhtmlHistory)祝你好運。這不是jQuery特有的,但它可以在IE,firefox和webkit中使用,並且不需要太多設置。

0

也許試試這個jQuery歷史記錄插件:http://www.balupton.com/sandbox/jquery-history/demo/它提供跨瀏覽器支持,綁定到哈希,重載哈希,所有其餘的。

還有一個阿賈克斯擴展它,使其能夠輕鬆地將網頁升級到一個適當的Ajax應用程序:http://www.balupton.com/sandbox/jquery-ajaxy/demo/

這是爲http://wbhomes.com.au/,並通過此類網站所選擇的解決方案http://gatesonline.com.au/stage/public/

整體而言,這是有據可查,支持和功能豐富。它也贏得了這裏的賞金問題How to show Ajax requests in URL?

1

你試過jQuery地址嗎?來自Asual,製作SWFAdress的人。 Asual - jquery Address

jQuery的地址插件提供了強大的深層鏈接功能,並允許可以指向一個網站的部分或應用程序的狀態獨特的虛擬地址的創建。

+0

我試過這個插件,它在更改事件被註冊時遇到了問題。 – Chev 2012-10-20 01:14:14

1

History.js有良好的記錄/維護,並支持所有瀏覽器。

https://github.com/browserstate/history.js

從網站:

History.js優雅地支持HTML5歷史/國家的API (pushState的,replaceState,onPopState)在所有瀏覽器。包括 繼續支持數據,標題,replaceState。支持jQuery, MooTools和原型。對於HTML5瀏覽器,這意味着您可以直接修改URL,而無需再使用散列。對於 HTML4瀏覽器,它將恢復使用舊的onhashchange 功能。

相關問題