如何在浏览器位置更改上保留HTML元素

时间:2012-04-18 07:24:48

标签: javascript jquery html xhtml

页面更改位置是否有办法保留一些 HTML元素。 就像div不会重新呈现但保持状态一样。

你可以在 Facebook聊天找到这样的例子,你可以看到聊天窗口不会改变它的位置,或者当你导航到另一个页面时InnerHtml

PS:我不知道从哪里开始,所以任何文档都会受到赞赏。如果解决方案是 XHTML 而不是 HTML5

那就太好了

2 个答案:

答案 0 :(得分:-1)

window.location更改时,页面会自动完全重新呈现。所以,从这个角度来看,答案是否定的。但是,使用AJAX可以获得此效果。在页面未重新加载或更改位置时,使用ajax向服务器发出请求(window.location始终相同)。这是一个以AJAX开头的好链接:

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

如果您仍希望页面更改其位置,在您发出ajax请求并更新页面上的内容后,您可以使用javascript的history.pushState函数。但是你必须找到一种方法让它跨浏览器(也就是说。让它在IE中工作)。

答案 1 :(得分:-1)

我不确切知道facebook聊天的工作方式,但我知道所有聊天消息都存储在数据库中,因此您可以稍后通过消息访问它们。

我的假设是设置一个Session变量,让facebook的UI知道你打开的聊天内容,或者也可能存储在数据库中。在任何一种情况下,您都必须使用一些外部脚本才能执行此操作。为了方便起见,我们假设您将使用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. */
}