书签链接无法使用jquery mobile

时间:2014-07-29 13:01:14

标签: jquery ajax jquery-mobile hyperlink bookmarks

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

非常感谢任何帮助我们将这些相同的页面(书签)链接用于工作。

1 个答案:

答案 0 :(得分:-1)

经过更多的研究,答案是&#34;它无法完成。&#34;

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

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

  </script>

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

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

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

完全可以工作。

以下是我的观点:总的来说,我对jquery.mobile非常失望。对于我们的应用,它似乎非常有侵略性和笨重。 Imho,劫持像哈希标签这样的角色,它在大多数网站上都有长期的全球使用,这不是一个好习惯。也许我对平台及其构建的内容没有足够的了解......这完全有可能。