【问题标题】:jquery-mobile: How do I not add a page to the history stackjquery-mobile:如何不将页面添加到历史堆栈
【发布时间】:2013-02-06 04:47:25
【问题描述】:

我有一个应用程序,其中包含一系列表单,每个表单都在自己的页面上。

我不希望将其中一些页面添加到历史堆栈中。这样当用户按回时,它会跳过它们。

Jquery-mobile 使用对话框来做到这一点。您可以将其配置为在所有页面(或任何其他数据角色)上发生,但不能只在某些页面上发生。

有人知道怎么做吗?或者,是否可以创建一个扩展“页面”的新数据角色。如果可以的话,我可以禁用所有这些页面的历史记录。

【问题讨论】:

    标签: jquery-mobile


    【解决方案1】:

    在这种情况下,您可以自己拨打$.mobile.changePage()

    $.mobile.changePage( "url", {
    changeHash: false //do not track it in history
    });
    

    http://jquerymobile.com/demos/1.2.0/docs/pages/page-navmodel.html http://jquerymobile.com/demos/1.2.0/docs/api/methods.html

    【讨论】:

    • 非常感谢。这让我发疯了。
    • 注意:从 1.4.0 开始,changePage 现已弃用,您需要改用它:$("body").pagecontainer("change","url",{changeHash:false});
    【解决方案2】:

    我遇到了同样的问题,我要发疯了!!!最后,我可以用下面的代码做到这一点!

    下面的代码自动阻止存储当前文档中所有页面的更改位置。

    请注意已经用jqm 1.4.2测试过

    <script>
        $(document).on("pagebeforetransition",function(event, ui){ 
            ui.options.changeHash = false; 
        }) ;
    </script>
    

    希望对你有帮助

    【讨论】:

    • 这个解决方案破坏了对话流。关闭后从页面 B 打开的对话打开页面 A 而不是 B。
    【解决方案3】:

    签出这个问题,与您尝试做的几乎相同。

    How to modify jQuery mobile history Back Button behavior

    谢谢, 亚历克斯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多