大家好,我正在从一个html页面导航到另一个页面:
window.location = "test.html";
在test.html中我有标题:
<script type="application/javascript">
function redirect()
{
alert("inside redirect:");
//window.location = url;
//history.back();
history.go(-1);
return false;
}
</script>
<div data-role="navbar">
<ul>
<li> <a href="#" data-theme="b" onclick="history.back(); return false;">Go Back</a></li>
<li> <a onclick="redirect()" data-icon="back" data-iconpos="notext" data-direction="reverse" class="ui-btn-left jqm-home">Back1</a></li>
</ul>
</div>
但是这两个后退按钮(Go Back和Back1)都不起作用。如果我使用$.mobile.changePage('test.html')
在页面之间导航,那么两个后退按钮都可以工作。为什么他们不与windows.location?
我想开发这个不支持ajax的B级浏览器的应用程序。因此,我无法使用$.mobile.changePage('test.html')
。
任何帮助将不胜感激。感谢。
答案 0 :(得分:1)
这个 Blackberry OS 5 浏览器存在很多问题。最初我也试着做你现在正在做的事情。但后来我认为你将不得不考虑其他一些更好的方法。这是我如何解决它
首先在加载jquery-mobile脚本之前添加这些行,如下所示
<script type="text/javascript">
$(document).bind("mobileinit", function() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});
</script>
然后我使用单一Html概念。在这个概念中,我只需加载我的脚本一次,我可以使用jquery-mobile的changePage
。当我有很多html页面时,我必须等待几秒钟,因为脚本的加载和卸载发生了。避免这种情况,它是不必要的。
将所有页面都放在同一个Html中
<div data-role="page" id="page1">
<div data-role="page" id="page2">
.
.
.
然后,您可以轻松地执行changePage
这样的
$.mobile.changePage("#page1", {
transition : "slide"
});
我希望你采取正确的方法。
答案 1 :(得分:0)
答案 2 :(得分:0)
为什么不使用window.location.replace("test.html")
;
答案 3 :(得分:0)
在jQuery mobile中,您可以通过设置一些initiation变量来关闭ajax。您需要在加载jQuery mobile
之前加载此脚本$(document).bind("mobileinit", function(){
//apply overrides here
$.mobile.ajaxEnabled = false;
});
关闭ajax后,您现在仍然可以使用$ .mobile.changePage()。
现在要创建一个后退按钮,您只需为该链接指定data-rel="back"
的属性<li><a href="#" data-theme="b" data-rel="back">Go Back</a></li>