我有一些人在jQuery Mobile中发现了一些我甚至可以在演示网站上重现的行为:
结果:在文本输入中输入的文本仍然存在。这就是我要的。
但是,如果您来自网站的某个地方,这会中断:
结果:文本输入中输入的文字已消失。这不是我想要的。
我在Chrome for Desktop和Windows Phone模拟器上进行了测试,两者都显示了相同的行为。如何始终保留在文本输入中输入的文本?在我的情况下,这是一个搜索框。我希望用户能够在从搜索结果中导航回来后优化搜索字词,而无需再次输入所有内容。
答案 0 :(得分:4)
这是因为,当你来自docs / forms时,ajax在开始时被禁用。那么,jQueryMobile禁用dom-cache。您可以在加载jquerymobile.js之前添加它来强制执行dom缓存:
$(document).bind("mobileinit", function() {
$.mobile.page.prototype.options.domCache = true;
});
修改:
我的解决方案有效,我只是尝试过:
继续my demo page;
点击“文字输入”
在“文字输入:”
点击左侧的“搜索输入”(我的演示中只有一些链接可用)
使用浏览器的后退按钮
你的文字还在那里!
(注意:这个page显示原始版本,有问题,所以没有domCache,证明我没有更改任何其他任何其他重复jQueryMobile-Docs页面来做我的演示)。
答案 1 :(得分:0)
请试试这个,它挽救了许多人的生命。
$.extend( $.mobile , {
ajaxEnabled : false,
hashListeningEnabled: false
});
可以阅读以下链接。
http://forum.jquery.com/topic/jquery-mobile-true-browser-back-button-issue
答案 2 :(得分:0)
我发现最可靠的方法是使用pagebeforehide将数据存储在本地存储中,并在需要时使用pagebeforeshow将其存回