1

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

4 回答 4

1

这个黑莓 OS 5浏览器有很多问题。最初我也尝试做你现在正在做的事情。但后来我认为你将不得不考虑其他更好的方法。这是我解决它的方法

首先在像这样加载 jquery-mobile 脚本之前添加这些行

<script type="text/javascript">
    $(document).bind("mobileinit", function() {
        $.support.cors = true;
        $.mobile.allowCrossDomainPages = true;
    });
</script>

然后我使用了Single Html 概念。在这个概念中,我只需要加载我的脚本一次,我就可以使用 jquery-mobile 的changePage. 当我有许多 html 页面时,我必须等待几秒钟,因为脚本的加载和卸载发生了。避免这种情况,这是不必要的。

像这样在同一个 Html 中拥有所有页面

<div data-role="page" id="page1">
<div data-role="page" id="page2">
.
.
.

然后之后你可以轻松地做一个changePage这样的

$.mobile.changePage("#page1", {
    transition : "slide"
});

我希望你采取正确的方法。

于 2012-07-26T09:08:50.363 回答
0

尝试:

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

或者:

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

见参考

于 2012-07-26T06:03:28.810 回答
0

为什么不使用window.location.replace("test.html")

于 2012-07-26T06:03:58.887 回答
0

在 jQuery mobile 中,您可以通过设置一些启动变量来关闭 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>
于 2012-07-26T06:45:32.220 回答