2012-04-18 84 views
0

有沒有一種方式,當頁面改變位置,以保留一些HTML元素的。 像div不會是重新呈現但保持它的狀態。如何保持HTML元素的瀏覽器的位置更改

你可以在Facebook Chat找到和示例,你可以看到聊天窗口不會改變它的位置或InnerHtml當你導航到另一個頁面。

PS:我不知道從哪裏開始,因此任何文檔將appreciated.And這將是很好,如果解決方案是XHTML沒有HTML5

+1

的可能重複[如何GitHub上更改URL,但不重裝?](http://stackoverflow.com/questions/4973777/how-does-github-change-the-url-but-not -the重載)...並且還http://stackoverflow.com/questions/4952554/github-source-dynamic-navigation它有更好的答案。 – Quentin 2012-04-18 07:26:35

+1

這*是* HTML5的一部分。它被稱爲歷史API。沒有它,它不會發生。 – 2012-04-18 07:47:34

回答

-1

我不知道究竟是如何的Facebook聊天的作品,但我知道所有的聊天信息都存儲在數據庫中,這樣你就可以通過消息後訪問它們。

我的假設將是一個會話變量設置讓Facebook的用戶界面知道什麼聊天已打開,或者其存儲在數據庫中也是如此。無論哪種情況,您都必須使用一些外部腳本才能執行此操作。爲了方便起見,可以說你會使用PHP,並且你會將數據存儲在一個SESSION變量中。

/* Storing the variable */ 
$users = array('user123', 'user456', 'user789'); 
$_SESSION['chat_windows_open'] = $users; 
/* Retrieving the values */ 
foreach($_SESSION['chat_windows_open'] as $chat) { 
/* Use $chat to get the username, query the DB for 
the message content, and echo it in whatever form you 
wish. */ 
} 
+0

不需要。這將需要重新加載每個新頁面。它不會維持它的整個狀態。 – Quentin 2012-04-18 07:38:06

-1

window.location變化,頁面automaticaly,完全重新呈現。所以,從這個角度來看,答案是否定的。但是,這種效果可以通過使用AJAX來獲得。使用Ajax使對服務器的請求,同時頁面沒有加載或改變位置(window.location始終是相同的)。這裏有一個很好的鏈接,開始與AJAX

http://www.w3schools.com/ajax/default.asp

如果你仍然想的頁面改變它的位置,你做你的Ajax請求並更新頁面上的內容後,您可以使用JavaScript的歷史.pushState函數。然而,你將不得不找到一種方法來使它跨瀏覽器(也就是使它在IE中工作)。

+0

這是不正確的。請參閱評論中重複問題的鏈接。此外,請避免W3Schools,他們[可怕](http://w3fools.com/)。 – Quentin 2012-04-18 07:36:18

相關問題