如何在浏览器位置更改时保持 HTML 元素
How to keep HTML Element on Browser Location Change
页面更改位置时有没有办法保留一些HTML元素。就像一个不会重新渲染但保持其状态的div
。
您可以在Facebook聊天中找到并举例说明,您可以看到聊天窗口在导航到另一个页面时不会更改其位置或InnerHtml
。
PS :我不知道从哪里开始,所以任何文档将不胜感激。如果解决方案是XHTML而不是HTML5,那就太好
我不知道Facebook聊天是如何工作的,但我知道所有聊天消息都存储在数据库中,因此您可以稍后通过消息访问它们。
我的假设是设置一个会话变量,让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. */
}
当window.location
更改时,页面会自动完全重新呈现。所以,从这个角度来看,答案是否定的。但是,这种效果可以通过使用 AJAX
.使用 ajax 在页面不重新加载或更改位置(window.location
始终相同)时向服务器发出请求。这里有一个很好的链接可以从AJAX
开始:
http://www.w3schools.com/ajax/default.asp
如果你仍然希望页面更改它的位置,在你发出ajax请求并更新页面上的内容之后,你可以使用javascript的history.pushState函数。但是,您必须找到一种方法来使其跨浏览器(又名使其在IE中工作)。
相关文章:
- 如何设置html元素填充的动画
- 删除对HTML元素的拖动
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何使用JQuery在Javascript中转换字符串中的HTML元素
- 一个html元素的克隆次数太多
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 为什么我在Internet Explorer上看不到html元素
- 重新排列HTML元素的顺序并更改内容
- 使用.on动态添加jquery/js不知道的html元素
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- 如何将html元素添加到tampermonkey中
- 访问html元素值javascript
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 自定义HTML元素属性未显示-Web组件
- 让HTML元素充当停止滚动的锚点
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 替换HTML元素中的字符
- 如何将html元素添加为生成的内容
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用JS加载HTML元素