2013-06-18 86 views
2

我在互聯網上發現了一個應用程序,當你點擊一個鏈接時,它會重定向到一個頁面,而不刷新整個地方並更改url地址欄,我知道它可能是因爲JQuery可以訪問客戶端sode瀏覽器。更新網址而不刷新?

幫我這個。

回答

0

最簡單的解決方案是使用框架或iframe,並將atarget屬性設置爲框架(或者只需單擊框架內的鏈接)。這將顯示框架中的新頁面,並在地址欄中顯示frameset-html的地址。

3

您可以使用HTML5歷史API來更改URL而無需刷新頁面,從Mozilla的https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history
看看這個教程還爲跨瀏覽器解決方案

jQuery的PJAX插件https://github.com/defunkt/jquery-pjax會幫你檢查出https://github.com/browserstate/History.js做你剛纔提到的,這將有助於更新內容並更改URL而不刷新。

下面是一個例子:http://pjax.heroku.com/這個例子
的源代碼可以在這裏找到:使用https://github.com/defunkt/jquery-pjax/tree/heroku

+0

雖然這可能在理論上回答這個問題,但[最好](http://meta.stackexchange.com/q/8259)包含答案的基本部分(例如API的示例用法)這裏,並提供鏈接供參考。 –

8

歷史API,你可以做這樣的事情

if (history && history.pushState){ 
    history.pushState(null, null, '/new/url'); 
    } 

與嘗試在你的瀏覽器現在鉻js控制檯

這就是所需要的(也許多一點,但多數民衆贊成的基礎上它

http://diveintohtml5.info/history.html

0

如果您只需要打印一些信息,去破折號#符號後這樣做會不會重新加載該文件

+0

這就是我的意思http://html5doctor.com/demos/history/socks – Spudster

+0

我的方法不會適合你的,它會顯示像/歷史#蓬鬆 – Edorka

2

這通常是通過使用最新的HTML5歷史API要麼做,或閱讀,對於舊瀏覽器,更改URL中的哈希值。看看這篇文章:http://dev.opera.com/articles/view/introducing-the-html5-history-api/

每當某個用戶操作提示新頁面而不是加載新頁面(使用新URL)時,該頁面將保留公共屬性(如說,頁眉,頁腳或在電子商務網站中說的購物車小部件),其餘內容通過Ajax異步獲取。獲取新內容後,用戶界面將相應更改,並將新的state推入歷史堆棧,並相應地更改URL。通過此處用作字典的data屬性,可以存儲有關用戶向前/向後導航並再次到達該頁面時顯示內容的信息。事情是這樣的:

history.pushState({mydata1: data, mydata2: anotherData},"newTitle",newURL); 

因此,當用戶按下瀏覽器的後退按鈕時,該條目被簡單地彈出歷史堆棧,以及新項目的數據屬性在堆棧的頂部,顯示新頁面。當前頁面可以被更新:可從state獲得

history.replaceState({mydata1: data, mydata2: anotherData}, "anotherTitle",newURL); 

關於當前頁的所有信息:

myState = history.state; 

如果看到,Facebook的做同樣的事情。當您單擊主頁按鈕或轉到朋友的個人資料時,不會加載新頁面。右側的通知代碼保持原樣(而不是再次加載新頁面),如果您打開任何聊天窗口,它將保持原樣。這是因爲頁面不會重新加載到新頁面(在這種情況下,所有小部件(包括聊天和報價器也應該重新加載),只有URL被動態更改,並且新內容通過Ajax獲取並顯示。

如果您查看Facebook的IE8,不支持History API,你會發現它仍然有效,但URL改變行爲是不同的。這是因爲他們通過改變哈希來改變URL的舊方式。

+0

我也注意到,當禁用java腳本時,Facebook運行速度較慢,只是測試它。 我可以在哪裏獲得更多有關這種方法的文件,聽起來很有希望。 – Spudster

+0

我不認爲你有足夠的注意力。如果您禁用Javascript,則Facebook中的大部分內容應該完全停止工作,自動更新就是其中之一。您正在尋找什麼類型的pf文檔?我提供的鏈接給出了一個很好的工作示例.. – SexyBeast

+0

臉書上的大多數事情都停止工作,包括沒有顯示的聊天系統就沒有提及它們。 我正在尋找任何可以實時更改瀏覽器網址的內容,或者像上面顯示的鏈接那樣進行最少改動。 – Spudster