window.location无法正常工作

时间:2012-07-26 05:59:29

标签: javascript jquery blackberry jquery-mobile cordova

大家好,我正在从一个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')

任何帮助将不胜感激。感谢。

4 个答案:

答案 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)

尝试:

window.location.href = "test.html"; 

window.location.assign("test.html");

SEE REFERENCE

答案 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>