jQuery在浏览器刷新时丢失XML数据
jQuery lose XML data on browser refresh
我已经构建了一个具有多个内部页面的应用程序,例如:
<div id="states" data-role="page">
<div data-role="header"> <a href="#" onClick="parent.history.back()" data-icon="back">Back</a>
<h1>My List</h1>
</div>
<!-- /header -->
<div data-role="content"></div>
<!-- /content -->
<div data-role="footer" data-position="fixed" data-id="myfooter">
<div data-role="navbar">
<ul>
<li><a href="#" data-icon="gear">Option</a></li>
<li><a href="#" data-icon="home">Home</a></li>
<li><a href="#" data-icon="search">Search</a></li>
</ul>
</div>
<!-- /navbar -->
</div>
<!-- /footer -->
</div>
<!-- /page -->
当页面初始化时,我加载一个XML文件并动态填充页面。这很好用。如果我在默认的内部页面上刷新屏幕,它会重新加载而不会出现问题。我可以深入一两页,点击后退按钮。。。这同样有效。我正在使用此代码来维护我的哈希历史记录(我是一个noob)。
$(document).bind( "pagebeforechange", function( e, info ) {
if ( typeof info.toPage === "string" ) {
var u = $.mobile.path.parseUrl( info.toPage ),
re = /^#.../;
if ( u.hash.search(re) !== -1 ) {
buildLists( u, info.options );
e.preventDefault();
}
}
});
当我转到另一个页面并点击刷新时,问题出现了,我的数据返回为未定义的,并且我的所有数据。find(…)调用都是无效的,从而引发错误。
有人有这个问题吗?如何确保我的数据a)被保留或b)被重新加载。我有什么东西不见了吗?
我已经研究过这段代码,但它并不像我需要的那样动态。我的所有列表视图都是通过XML填充的。
您正在收听错误的事件。更改哈希时会触发pagebeforechange。你想在哈希更改时更改它,就像在中一样,当浏览器设置它时。听"hashchange"我建议在没有jQuery的情况下学习如何做这些事情,因为库只是隐藏了实际的技术。
如果这不起作用,就放弃jQuery(我讨厌它,从不使用它,我的所有网站都可以在所有设备上工作)。还有很多其他方法可以做到这一点。这里有一个:http://www.davidpirek.com/blog/on-hash-change-javascript-listener
相关文章:
- 带有显示XML数据的HTML的空白页
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 缩略图库的XML数据图像绑定
- 如何在Javascript中通过POST请求发送XML数据
- jQuery使用XML数据更新UL列表
- 将 XML 数据转换为 json 格式 AngularJS
- 如何在javascript(ajax)中使用嵌入HTML中的XML数据
- 使用JSONPjquery获取HTML格式的XML数据
- 将普通数据转换为xml数据的图像滑块
- 如何从加载到javascript中的导出XML数据中删除不需要的空格
- 使用Javascript在Html中将Xml数据或Json对象预览为Xml树
- 使用IE9更新XML数据孤岛
- 嵌套的XML数据和ExtJS模型关联
- 从javascript向Ashx处理程序发送xml数据,并在新窗口中显示响应
- 在jQuery中按日期对xml数据进行排序
- 使用XML数据在浏览器中使用数学
- 如何在 JQuery 中按日期对 xml 数据进行排序
- JSON / JQUERY - ajax post,如何在成功函数中处理 XML 数据
- 使用 JavaScript 显示和隐藏 PHP 回显的 XML 数据
- 使用 JavaScript 显示 XML 数据,在函数结束时出现问题