2009-07-31 58 views
6

創造歷史項目在這一點上,我們有一個使用hashvalues,以確定哪些圖片目前顯示給用戶,並支持發送頁面給朋友,這樣的照相館。喜歡的東西:top.location.replace Safari /鉻

http://url/photos/#photo-4

當我們點擊一​​個或下一個按鈕後,裝載相應的圖片,我們根據JS 1.1規範使用更改URL:

top.location.replace(url.url + hash); 

我們想要的行爲沒有歷史項目正在創建,因此用戶可以使用後退按鈕離開照相館,而不是使用後退按鈕查看以前的照片。

在IE和Firefox的方法用得好好的,但Safari和Chrome瀏覽器執行使歷史項爲改變的URL。我發現很多樣本在使用散列進行導航時如何創建歷史記錄,但是我想以另一種方式進行操作。任何線索?

回答

3

此工程爲目前預計:

野生動物園 [5.1.7] location.replace()按預期工作 - 網址被替換,沒有被添加到後退按鈕的隊列,並且不添加任何到歷史菜單。

[21.0.1180.82] location.replace()是一個有點棘手 - 網址被替換,沒有被添加到後退按鈕的隊列,但它確實的項目添加到歷史菜單


是什麼讓這個棘手的是,有兩個不同的歷史隊列 - 歷史菜單和後退/前進按鈕。點擊並按住後退和前進按鈕查看他們的隊列並與歷史菜單進行比較。

而後退/前進按鈕的歷史隊列是聯繫在一起的活動標籤。此外,即使您清除歷史記錄菜單,按鈕歷史記錄也會保留 - 至少在您關閉標籤之前。 ()()

0

有你看着使用window.location.hash = newHash分配您的哈希,而不是更換整個網址是什麼?

https://developer.mozilla.org/en/DOM/window.location

+0

是 「replace(url)\t將當前文檔替換爲提供的URL,與assign()方法的不同之處在於,在使用replace()後,當前頁面不會保存在會話歷史記錄中,用戶將無法使用「後退」按鈕導航到它。「 在那裏我得到了我的錯誤,因爲這在Webkit中不起作用。 – 2009-07-31 13:46:19

+0

我要澄清我的答案 – MyItchyChin 2009-07-31 13:55:06

3

似乎在這一點上沒有任何解決方案。