【问题标题】:How to debug bookmark anchors not working because of JavaScript如何调试由于 JavaScript 而无法正常工作的书签锚点
【发布时间】:2014-02-18 22:45:42
【问题描述】:

我遇到了一个问题,我认为我的所有包含锚书签的链接(即:“/index.php#top”)都不适用于 FireFox。我得出的结论是,我正在开发的 Joomla 2.5 模板中有一些 JavaScript 正在杀死我的页面中包含哈希标记的所有链接(使它们无处可去)。

要了解我在说什么,这是我的模板,它工作正常: http://www.lawsonsp.com/ink-information/textile-plastisol-inks?jtpl=8

这是包含问题的我的模板: http://www.lawsonsp.com/ink-information/textile-plastisol-inks?jtpl=9

在此页面上(在两个模板上),主要内容顶部的图像链接应链接到下面的相应部分(即:“#white”)

如何诊断哪些 Javascript 代码正在杀死包含井号标记的链接? (最好使用 FireFox,但任何方法都将不胜感激)

【问题讨论】:

    标签: javascript joomla anchor conflict bookmarks


    【解决方案1】:

    我最近不得不解决这个确切的问题。我发现使用 jQuery 来监听和管理事件是最有效的解决方案。这是我使用的代码示例:

    JHtml::_('jquery.framework');
    
    jQuery(document).on('click', '#go-to-my-anchor', function(e) {
        e.preventDefault();
        window.location.hash = '#my-anchor';
    });
    

    【讨论】:

    • 感谢@user3295190的回复,但是我觉得自己对JS编码太不熟悉了,我什至不知道该把这段代码放在哪里去实现……
    【解决方案2】:

    我发现,在 jqm.init.js 文件的下部,一些设置在加载 JQuery mobile 之前被初始化和/或停用。默认情况下,其中几行被注释掉,我发现有两行对应于处理带有哈希的链接,就像我的问题一样。

    我确保以下行未注释以允许浏览器而不是 JQuery 进行正常的链接处理(我很确定)

    $(document).bind("mobileinit", function() {
       ...
       $.mobile.linkBindingEnabled = false;
       $.mobile.hashListeningEnabled = false;
       ...
    });
    

    如果有人看到这方面的问题,请告诉我,因为我是 JS 编码的新手...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-18
      • 2011-02-13
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      相关资源
      最近更新 更多