【问题标题】:How to send all clicked links to a page before going to the URL in the link如何在转到链接中的 URL 之前将所有点击的链接发送到页面
【发布时间】:2024-01-14 15:01:01
【问题描述】:

问题:我将如何设置一个页面,以便所有链接在单击时转到一个名为 query_data.cfm 的页面,在该页面中触发数据库查询,并在完成后将用户发送到原始链接的 url?

截至目前,我正在使用 javascript 为页面上的所有链接添加一个类。

<script>
$(document).ready( function() {
    $('a').addClass("tracker");
});
</script>

但我还想做的是让所有与该类的链接,例如 &lt;a class="tracker" href="www.mywebsite.com/page2.cfm"&gt;Page 2&lt;/a&gt; 转到名为 www.mywebsite.com/query_data.cfm 的页面,其中运行查询并传递 href 的值到数据库,完成后将用户重定向到www.mywebsite.com/page2.cfm

我希望这是足够的信息,但如果我遗漏了什么,请告诉我。

【问题讨论】:

    标签: javascript jquery coldfusion href


    【解决方案1】:

    一种方法是简单地更改链接,例如:

    &lt;a class="tracker" href="www.mywebsite.com/query_data.cfm?destination=page2.cfm"&gt;Page 2&lt;/a&gt;

    然后所有链接将转到query_data.cfm,这将记录#URL.destination# 信息,然后将CFLOCATION 它们转到#URL.destination#。

    【讨论】:

    • 您能否帮助我使用 javascript 更新我页面上的所有链接,以将它们转换为您上面概述的逻辑,其中 query_data.cfm 的静态 url 是主要 url 和实际的 url 是一个 _GET 变量?
    • 我创建的jsFiddle 确实替换了该位置。如果 javascript 被禁用,它将像常规链接一样。
    【解决方案2】:

    编辑:哦,你是同一个人,我的错。读取故障。

    我建议你试试这个:http://jsfiddle.net/xcr56gd1/

    由于您使用 jquery 来添加链接,因此您有望看到如何使用 jquery 将 href 更改为 `/r.cfm?d= + $(this).attr('href'),正确编码为 url。

    $(document).ready(function () {
        $("a").not(".norm").on("click", function(e) {
            alert($(this).attr('href'));
            // The alert just demonstrates that it's working and how to get href.
            // You can call your ajax here.
            e.preventDefault();
        });
    });
    

    使用此代码,您可以在没有“规范”类的所有链接上使用 jquery,因此,如果您特别希望不跟踪链接,您可以这样做。

    【讨论】:

    • 我自己写了一个jsfiddle 作为概念证明。和你的想法差不多。
    • 谢谢 cfqueryparam,这将非常有帮助,所以我明白了......你有关于“ajax here”的评论的地方是我可以添加我的数据库查询代码的地方吗?或者仍然如此必须进入此链接和它指向的 url 之间的单独文件/
    • 它将进入一个单独的文件,虽然这是一个非常基本的 ajax 发布,但您需要发布的只是链接的 url,其他数据,如可用的会话内容调用的 ajax 页面。
    最近更新 更多