我见过this related question jQuery mobile加载到DOM中。但是,在这种情况下,启用了ajax加载,并且他正在使用window.location
移动页面。
我没有使用window.location
,只是正常的超链接,我已经关闭了ajax loading:
$(document).ready(function() {
// disable page transitions
$.mobile.ajaxEnabled = false;
$.mobile.defaultPageTransition = 'none';
}
尽管如此,如果我:
发生以下情况:
这不可靠;有时内容来自更早的页面。
请注意,在步骤3中,单击jQuery mobile生成的后退按钮会导致相同的行为。
请注意,对于明确标记为data-ajax="false"
的链接,也会发生这种情况。
此外,桌面浏览器上只会出现不,只有Android(它似乎也会出现在iPhone中,虽然我只是通过模拟器进行了测试)。
答案 0 :(得分:2)
看起来这是由pushState引起的。
重要:rel ="外部"和$ .mobile.ajaxEnabled = false
各种各样的replaceState API的实现略有不同 浏览器可能会导致特定情况下的奇怪行为例如, 一些浏览器实现(包括桌面浏览器)实现 当外部链接和后退时,
popstate
事件会有所不同 到已经推送/替换状态的页面。什么时候 构建ajax导航所在的jQuery Mobile应用程序 被明确禁用,要么经常使用 链接上的rel="external"
或完全禁用Ajax导航$.mobile.ajaxEnabled=false
,我们建议禁用pushState 功能可以回退到基于哈希的导航,以获得更一致的功能 行为。
只需添加代码即可在标头中禁用pushState:
<script src="//code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
<script type="text/javascript">
$.mobile.pushStateEnabled = false;
</script>
现在有效!