2013-07-31 75 views
1

我對web開發比較陌生,所以這可能是一個奇怪的問題。我想要我的網站的一部分加載一個新的頁面。但重要的部分不需要改變。我現在所做的是將內容加載到div中。低成本頁面轉換

$('#rightdiv').load("about.html"); 

這樣做的缺點是地址不變,我相信有一個很好的解決方案,但我不知道如何。我試着googleing它,但我找不到任何好東西。所以我很想看到一個解決方案和如何調用溶劑(希望你知道我的意思)。

謝謝你的時間和精力。

+1

那麼你可以找到自己的解決方案,它的相當容易。它被稱爲「HTML5歷史API」。谷歌那。 – putvande

+0

非常感謝,我今天晚些時候會閱讀。 (如果你的帖子是作爲答案,我可能會接受它)。 –

回答

1

瀏覽器支持HTML5的pushState會讓你改變路徑此鏈接很好的解釋:

$('#rightdiv').load("about.html", function pushState(){ 
    if(history && history.pushState){ 
     history.pushState('','','about.html'); 
    } 
}); 
1

標準方法是使用location.hash。例如,如果您在mysite.com/上,並加載了about.html頁面,則可以將散列設置爲#about。這不會導致頁面重新加載,但會改變URL(以提供書籤/後退按鈕支持)。

作爲一個例子,利用成功的回調load()

$('#rightdiv').load('about.html', function() { 
    location.hash = 'about'; 
}); 

HTML5增加了一個名爲pushState新的API。這可以在不引起頁面重新加載的情況下更完整地修改URL。閱讀更多關於here

+0

支持書籤和後退按鈕需要的不僅僅是這些。 –

+0

這會讓他開始正確的道路。 – rossipedia

+0

'location.hash'是標準的HTML5前標準,但'pushState'可能更適合新的HTML5開發。看到競爭的答案[這裏](http://stackoverflow.com/questions/9340121/which-one-is-better-pushstate-or-location-hash),但帶着一粒鹽給發佈的日期。查看瀏覽器支持[here](http://caniuse.com/#search=pushstate) –

-1

這是使用AJAX將數據加載到div的正確方法。我個人更喜歡使用jQuery.ajax()函數。

0

這可以通過利用HTML5及其功能輕鬆實現。
Myspace的功能類似於你所要求的。 HTML5歷史記錄API可更改瀏覽器網址,而無需刷新頁面。將它與JQuery $ .ajax結合可以產生myspace,github和facebook中顯示的效果。 「arundavid」具有tinywall.info