【问题标题】:Bookmark Links not working with jquery mobile书签链接不适用于 jquery mobile
【发布时间】:2014-09-20 20:43:24
【问题描述】:

Jquery-Mobile 干扰了我的同一页面(书签)链接。为了解决这个问题,我试图禁用给定站点内页面上超链接的 ajax 调用。我已成功禁用页面上正常链接的 ajax,但书签链接仍然无法正常工作。

我在这里研究了 jquery 移动文档和其他问题。我正在使用 jquery mobile 1.4.2 并设置了一个脚本,通过在 head 部分将 ajaxEnabled 设置为 false 并将 pushStateEnable 设置为 false 来禁用整个页面的 ajax 调用。我按照http://api.jquerymobile.com/global-config/ 的指示进行了这些操作(“您需要在加载 jQuery Mobile 之前绑定事件处理程序”)

<script src="/cmsroot/jquery-ui-mobile/js/jquery.js"></script>
<script>
  $( document ).on( "mobileinit", function() {
    $.extend( $.mobile , {
    ajaxEnabled: false,
    pushStateEnabled: false
    });
});

</script>
<script src="/cmsroot/jquery-ui-mobile/js/jquery.mobile-1.4.2.min.js"></script>

这可以禁用页面上所有正常链接的 ajax。但是,我的书签(同一页面链接)不起作用。

我有两种书签链接: 1)链接到同一页面上的一个地方 2) 链接到不同页面上的某个地方

1) 当链接到同一页面上的某个地方时,该链接将不起作用。点击下面的链接什么都不做

 <p><a href="#thebottom">jump to the bottom</a></p>
 <!-- lots of html stuff in between -->
 <p><a id="thebottom">&nbsp;</a></p>
 <p>testing jump to bottom content....</p>

2) 当链接到不同页面上的位置时,链接将转到指示的页面,跳到相应的书签,然后跳回页面顶部(您可以在 chrome 中看到这种情况) .目标页面还在页面顶部将 ajaxEnabled 设置为 false。

<!-- splinks.html -->
<p>see the <a href="destination.htm#sapchart">SAP Calculation Chart</a></p>

<!-- destination.htm --> 
<p><a id="sapchart"></a>

您可以在以下位置查看此问题的实时代码版本 http://www.etsu.edu/testing/splinks.htm

非常感谢任何帮助使这些相同的页面(书签)链接正常工作。

【问题讨论】:

    标签: jquery ajax jquery-mobile hyperlink bookmarks


    【解决方案1】:

    经过更多研究,答案是“做不到”。

    似乎禁用哈希监听将是启用书签链接的关键。我插入了下面的代码,试图告诉 jquery 停止使用哈希标签,但这无助于启用书签的正常功能。

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

    我已经确定没有办法让 html 书签在调用 jquery mobile 的页面上工作。这种全球解决方案根本不起作用。

    能够通过添加 rel="external" 或 "data-ajax=false" 作为标签的属性来获得相同的页面链接。但我永远无法获得指向不同页面上某个位置的链接

    <a href="jumpto_on_a_new_page#jumplocation">jump to location on a new page</a>
    

    完全可以工作。

    以下只是我的看法: 总的来说,我对 jquery.mobile 非常失望。对于我们的应用程序,它似乎非常具有侵入性和体积。恕我直言,劫持一个在大多数网站上长期使用的哈希标签这样的字符并不是一个好的做法。也许我对平台及其构建目的没有足够的了解......这是完全可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多