【问题标题】:Get target URL of clicked event - client side获取点击事件的目标 URL - 客户端
【发布时间】:2017-05-14 12:39:57
【问题描述】:

单击菜单或母版页中的任何链接时,我必须获取目标 URL。

我使用了以下代码

var target = $(document.activeElement)[0].href;

哪个工作 90% 正确。因为当我第一次从菜单中单击一个链接时。它显示未定义。

也就是说,我在母版页中有许多菜单,每个菜单都包含许多导航。当我第一次从菜单中单击导航时,它将没有值。如果我单击同一链接中的任何链接之后的菜单显示正确的目标链接。

请帮我找一个方法来获取目标网址。

【问题讨论】:

    标签: javascript c# jquery


    【解决方案1】:

    可以这样获取目标url——

    $('a').click(function(event) {
      $('div').html(event.target.href);
      event.preventDefault(); // Used to prevent the page from redirecting to google.com, just used for demo, you can remove it in your actual if not needed
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <a href="http://google.com">Link 1</a>
    <a href="http://facebook.com">Link 2</a>
    <a href="http://stackoverflow.com">Link 3</a>
    <div></div>

    只要给函数一个参数,比如e,然后使用e获取目标url(href)

    【讨论】:

    • 谢谢你,@Advaith。我的一些链接只是弹出窗口,我只想在导航到另一个页面时执行该操作。
    • @Akhil 没问题。 :) .
    【解决方案2】:

    您可以尝试以下解决方案来获取页面中任何锚点的目标:

    $(document).ready(function(){
        $(document).on("click", "a", function () {
            var target=$(this).attr("href");
            if(target!=undefined){
                alert(target);
            }
        });
    });
    

    【讨论】:

      【解决方案3】:

      您在这里处理的是竞争条件。我不知道您在哪里尝试访问该变量,但很可能document.activeElement 不会引用您愿意关闭其 href 的 DOM 元素。

      文档说:返回当前聚焦的元素,即,如果用户键入任何键,该元素将获得击键事件。该属性是只读的。

      因此,您需要在要读取其 href 的元素的 onClick 事件处理程序上进行处理:

      onMyButtonClick(event){
       event.target.href;
      }
      

      【讨论】:

      • 谢谢你,@Burinmi。我必须得到 $(window).unload() 中的 href 和 event.target.href;没有得到,因为即使我从母版页单击导航,我也必须在我的页面中获取它。
      • 我正在获取问题中提到的代码的目标 URL。仅在某些情况下它显示未定义。
      • @Akhil 我觉得你很厉害,但你必须付出一些努力才能完成这项工作,因为我做不到,我不会处理你的非常具体的问题。
      猜你喜欢
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 2011-01-26
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多