2011-08-18 114 views
1

當前基於網絡的工具是模板驅動的,呈現HTML並一次爲其提供頁面。我一直在嘗試使用更現代的工具,如ajax來加載頁面內容,純粹是頁面之間的變化。AJAX - 更新div內容 - 向後走?

我在測試中發現的一個問題是,如果我的「返回」鏈接(其調用JavaScript:history.go(-1);)與當前工具一樣,它不起作用。在我們以前的系統中,這些鏈接會將您帶到上一頁(存在的地方)。

在測試系統中,我使用jQuerys ajax更新div內容。

有沒有人有解決這個動態內容的策略,提供一個鏈接,可以讓您回到層次結構中的一步?

+0

你可以使用url主題標籤(片段) –

+0

這種hashtag? http://en.wikipedia.org/wiki/Tag_%28metadata%29#Hashtags如果是這樣,我看不出如何可以幫助在這種情況下 – martok

+0

去測試這裏提到的一些插件:http:// stackoverflow。 COM /問題/ 116446 /什麼,是最最好的後退按鈕 - jQuery的插件 – martok

回答

1

我掙扎着這個問題很多次,也有建議操縱瀏覽器歷史記錄和攔截回從瀏覽器等

短的點擊費用解決方案的種種是您使用頁面參數來控制在頁面上呈現的內容,但是更改地址欄值將重新加載頁面,所以這是如何工作的?很簡單,您可以在#後更改任何值,並且瀏覽器不會重新加載頁面。然後你的javascript只讀取#後面的值來確定頁面的內容。 Here is a good article on it.

我想知道gmail如何做,並分析他們的頁面,似乎他們使用了很多iframe s。 iframes的優勢在於,它們可以爲您的網站提供ajax外觀,而不會像真正那樣,我相信在瀏覽器上點擊只會回到iframe。自從我做了這樣的事情已經有一段時間了,所以不能100%確定。

我希望這會有所幫助。這裏沒有人能夠給你100%的工作解決方案(據我所知),Ajax應用程序的性質使得解決方案也必須是定製的。

0

後面的鏈接將不起作用,因爲您沒有加載整個頁面(URL不會更改),但這是顯而易見的。

嘗試將用戶的歷史記錄保存在javascript-cookie中,然後加載上面列出的一個單元的頁面。這樣,點擊「返回」也不會回到他們之前瀏覽的外部頁面,javascript:history.back()會執行什麼操作。