【问题标题】:Force jQuery Mobile to update hash instead of URL for AJAX pages?强制 jQuery Mobile 更新哈希而不是 AJAX 页面的 URL?
【发布时间】:2012-08-14 15:08:20
【问题描述】:

我正在使用 jQuery Mobile 的默认行为,其中我的 href 链接指向我网站上的不同页面。这完全改变了 URL。有没有办法让它更新哈希而不是更改 URL?直接访问时,单独的页面不起作用,因此哈希是有意义的(有利于书签)。我也不必担心从那里的相对路径,因为我仍然在我的站点的根目录中。有什么方法可以像对话一样做到这一点?

【问题讨论】:

    标签: javascript jquery jquery-mobile mobile-website


    【解决方案1】:

    您可以通过将pushStateEnabled 设置为false 来禁用此功能。

    这是在mobileinit 事件中完成的。例如:

    <script type="text/javascript">
    $(document).bind("mobileinit", function(){
        $.mobile.pushStateEnabled = false;
    });
    </script>
    
    <script src="jquery-mobile.js"></script>
    

    注意mobileinit 必须在之前 jQuery mobile 被包含到页面中。 如需更多信息,请查看jQuery Mobile configuration defaults documentation page

    【讨论】:

    • 仅供参考,这不适用于最新的 jquery-mobile,更重要的是它会破坏所有指向不存在链接的链接(通过在链接中注入 #)。我最终通过禁用此行为在本地保存并“修复”jquery-mobile (useDefaultUrlHandling = false)
    【解决方案2】:

    对于1.4.5版本的jQuery Mobile,我们发现还需要将changePage.defaults.changeHashhashListeningEnabled参数设置为false

    例子:

    <script>
        $(document).bind('mobileinit',function(){
            $.mobile.changePage.defaults.changeHash = false;
            $.mobile.hashListeningEnabled = false;
            $.mobile.pushStateEnabled = false;
        });
    </script>
    

    来源: jquery-mobile/no-hash-tests.html at cb9112abb3acf73abc104051ac318647055b189c · jquery/jquery-mobile · GitHub

    【讨论】:

    • 这也不起作用。我有一个简单图像的简单链接,而 jquery-mobile 完全搞砸了。
    猜你喜欢
    • 2012-12-07
    • 2014-12-02
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2010-12-08
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多