【问题标题】:Find out where a "#" link is pointing?找出“#”链接指向的位置?
【发布时间】:2014-07-19 06:53:43
【问题描述】:

我有这个链接

<a href="#" id="gallery_search"
   data-filter=".<?php echo $Filterclass; ?>"><?php echo strtoupper($ui); ?></a>

当您单击它时,它会重新加载页面(不刷新)并根据数据过滤器的内容显示不同的结果。

很简单。

问题是我想找出该链接指向的位置,以便我可以更改它,然后直接访问它。

我的域名是http://explorerhinelander.com/rsd(Wordpress 安装)

当我尝试访问http://explorerhinelander.com/rsd/#gallery_search 时,它不会像单击链接那样加载页面。它只是重新加载已经存在的任何内容。

我只需要知道如何获取该链接指向的 URL。 Firebug 显示它只是“#”。

【问题讨论】:

  • 我什至找不到这个锚标签,还有一堆相同的gallery_filter id
  • 我认为这是一个 AJAX 请求,因为页面会在没有刷新的情况下重新加载。它只是让我发疯,我可以创建链接,单击链接,但不能手动访问它或查看它或用它做任何事情。
  • 这不是 AJAX 请求。 Firebug 显示空白控制台。我如何找到这个?
  • @user734063 看我的回答 :-)

标签: jquery hyperlink href


【解决方案1】:

在页面下方有下一个脚本

jQuery(function () {
    jQuery("#gallery-bank-thumbnails_3413 > a > div.gb_overlay").addClass("animated overlay");
    jQuery(".imgLiquidFill").imgLiquid({fill: true});
    jQuery("#holder_3413").jPages({containerID: "gallery-bank-thumbnails_3413", perPage:18,animation:"overlay"});
});
var $optionSets = jQuery("#bank_filters_3413"), // container for links
    $optionLinks = $optionSets.find("a"); //find all <a> tags in container
    $optionLinks.click(function () { // add onclick event handler
        var selector_3413 = jQuery(this).attr("data-filter"); //get filter string
        if (selector_3413 != "*") { //if not show all
            jQuery("#gallery-bank-thumbnails_3413 > a > div.margin_thumbs").addClass("jp-hidden"); // hide all
            jQuery("#gallery-bank-thumbnails_3413 > a" + selector_3413 + " > div.margin_thumbs").removeClass("jp-hidden"); // delete class with hide for filtered
            jQuery("#gallery-bank-thumbnails_3413 > a" + selector_3413 + " > div.margin_thumbs").css("display", ""); // show all filtered
        }
        else { //if show all
            jQuery("#gallery-bank-thumbnails_3413 > a > div.margin_thumbs").removeClass("jp-hidden"); //remove class with hide for all
            jQuery("#gallery-bank-thumbnails_3413 > a" + selector_3413 + " > div.margin_thumbs").removeClass("animated overlay"); //remove class with overlay
            jQuery("#gallery-bank-thumbnails_3413 > a > div.margin_thumbs").css("display", ""); // show all
        }
        jQuery("#holder_3413").jPages({containerID: "gallery-bank-thumbnails_3413", perPage:18,animation:"overlay"});
        return false;
    });
    jQuery("#bank_filters_3413 a").on("click", function () {
        jQuery("#bank_filters_3413").find(".act").removeClass("act");
        jQuery(this).addClass("act");
    });

事实上,这个脚本简单地改变了加载 div 的 css,没有 ajax 或类似 ajax 的东西 :-)

【讨论】:

  • 非常感谢。令我惊讶的是,我在整个插件代码中都搜索了“数据过滤器”和“图库搜索”。它没有出现。
  • 我想这里的课程是查看源代码
【解决方案2】:

该链接正在被 JavaScript 替换或控制。

在您的代码中搜索包含类似于以下四行之一的代码片段的任何链接:

document.getElementById("gallery_search").onClick = function() { ... }
document.querySelector("#gallery_search").onClick = function() { ... }
document.getElementById("gallery_search").addEventListener('click', function() { ... })
$('#gallery_search').click(function() { ... })

在加载到您网站的所有 JavaScript 中搜索术语 gallery_search 可能是最简单的方法。

【讨论】:

  • 也可能是$('#gallery_search').gallery({...})之类的插件
  • @Grundy 查看他链接到的页面的来源,看来您是正确的。它似乎使用了一些名为“Gallery Bank Pro Edition”的插件,尽管我还没有找到 JavaScript 究竟在哪里“拾取”了链接。
【解决方案3】:

您可以使用 FireBug 或 Google Chrome 的“网络”视图来检查请求。在 Chrome 上按 CTRL+SHIFT+I 并转到“网络”选项卡。重新加载页面,单击按钮,然后查看请求的 URL。

【讨论】:

    猜你喜欢
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多