$ .mobile.changePage没有ajax

时间:2012-07-25 06:16:21

标签: jquery jquery-ui jquery-plugins jquery-mobile cordova

您好,我使用$.mobile.changePage('test.html');从一个页面导航到另一个页面。这在android,symbian和blackberry6 +中运行良好。但我也希望我的应用程序在blackberry5上运行。 Blackberry5不支持ajax,因此$.mobile.changePage('test.html');无效。

出于这个原因,我使用window.open("test.html");window.location.href = "test.html";这里它在所有平台上都很完美,包括blackberry4.6 +。但现在问题是我在test.html中有标题:

     <div data-role="header" align="center">

        <a href="#" data-rel="back" data-icon="arrow-l">Back</a>
            <h1>Test.html</h1>
        <a href="MainMenu.html"  data-icon="grid">Menu</a>


    </div>

但现在这里的按钮不起作用了。如果我使用$.mobile.changePage('test.html');进行导航,那么后退按钮可以完美运行,但不适用于window.open("test.html");window.location.href = "test.html";

因此我使用会话,然后点击后退按钮我强行呼叫页面。为:

<script type="application/javascript">

            function redirect(url)
            {
                alert("inside redirect:"+url);
                window.location = url;
            }

        </script>

        <div data-role="navbar">
            <ul>

                <li> <a onclick="redirect( getCookie('paged'))" data-icon="back" data-iconpos="notext" data-direction="reverse" class="ui-btn-left jqm-home">Back</a></li>
                <li> <a onclick="redirect(getCookie('paged'))" data-icon="back" data-iconpos="notext" data-direction="reverse" class="ui-btn-left jqm-home">Back</a></li>

            </ul>
        </div>

现在这里的后退按钮也很完美,但是当我点击硬件后退按钮时,它再次转到它来自的前一页。

如何在没有ajax的情况下使用$.mobile.changePage(...),以便我可以将它用于所有平台,包括blackberry4.6 +

任何建议将不胜感激。提前谢谢。

4 个答案:

答案 0 :(得分:1)

我尝试使用全局配置禁用ajax,但由于某种原因它不适用于我。

我尝试如下,它有效

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

答案 1 :(得分:0)

您是否尝试将全局属性$.mobile.ajaxEnabled设置为false?见http://jquerymobile.com/demos/1.1.1/docs/api/globalconfig.html。据写道,“jQuery Mobile将在可能的情况下自动处理链接点击并通过Ajax形成提交”。我现在不确定它是否也会影响$.mobile.changePage,但也许值得一试......

答案 2 :(得分:0)

您可以使用此功能。

$.mobile.changePage('#gototestpage');

但是有一些限制。您必须将代码保存在另一个div中的相同页面中,

<div id="gototestpage"> --- Your Code here ----- </div>

答案 3 :(得分:0)

我尝试了这两个解决方案,两个都适合我:

window.location.href = yourpageurl;

$.mobile.ajaxEnabled = false;
$(":mobile-pagecontainer").pagecontainer( "change", yourpageurl);