【问题标题】:Jquery mobile: ui-state=dialogJquery 移动端:ui-state=dialog
【发布时间】:2016-12-14 12:43:57
【问题描述】:

我正在使用 JQuery mobile 作为用户菜单列表,但它似乎保存了按下的按钮链接“ui-state=dialog”,当我使用网络浏览器上的后退按钮时,这会干扰导航。如何删除添加到 URL 的“ui-state=dialog”?

示例:http://demos.jquerymobile.com/1.4.5/popup/

尝试第一个所谓的“基本弹出窗口”,保存的 URL 即:“ui-state=dialog”仍然出现在浏览器历史记录中。

【问题讨论】:

    标签: jquery jquery-mobile


    【解决方案1】:

    为了解决刷新问题,我使用在页面创建时拦截#&ui-state 和类似内容并最终重定向到一个干净的url:

    $(document).on("pagebeforecreate",function(){
        if(window.location.hash!=""){
            window.location.replace(window.location.origin+window.location.pathname);
        }
    });
    

    为避免在浏览器历史记录中插入 #&ui-state,可以在每个弹出窗口中添加 data-history="false":

    <div data-history="false" data-role="popup" ...
    

    【讨论】:

    • 这应该被接受答案data-history="false"
    【解决方案2】:

    我解决了这个问题:通过使用:

    $( ".selector" ).popup({
      history: false
    });
    
    $(document).on("pageinit", function() 
    {
         $( ".selector" ).popup({
           history: false
        });
    
    });
    

    更多信息:

    http://api.jquerymobile.com/popup/#option-history

    【讨论】:

      【解决方案3】:

      另一种解决方案是在标记中分配data-history="false" 属性:

      <div data-history="false" data-role="popup" id="popup-1" data-theme="b" data-overlay-theme="b">
      

      【讨论】:

        猜你喜欢
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        相关资源
        最近更新 更多