【问题标题】:Hyperlink with hashtag do not open in new tab带有标签的超链接不在新标签页中打开
【发布时间】:2017-07-16 04:15:58
【问题描述】:

我正在使用此代码在新选项卡中打开所有 URL。 但我希望带有 # 的网址不要在新标签页中打开。例如:

jQuery("a").attr("target", "_blank");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<a href="#">content</a>
<a href="#contact">Contact</a>

谢谢

【问题讨论】:

    标签: jquery hyperlink hashtag


    【解决方案1】:

    您可以在附加_blank 之前检查href 属性值。

    jQuery("a").attr("target", function() {
      if ($(this).attr('href') != '#') {
        $(this).attr('target', '_blank');
      }
    });
    

    在上面的代码中,我们检查href的值,如果是#则忽略它,否则将_blank值附加到元素目标。

    Demo


    如果您希望忽略所有href# 开始的a 标签,您可以执行类似的操作

    jQuery("a").attr("target", function() {
      if ($(this).attr('href')[0] != '#') { //checks for the first char, if #, ignore
        return '_blank';
      }
    });
    

    Demo

    【讨论】:

    • 还检查了#contact?
    • @vusan Aah,我以为他想忽略空白哈希网址,将修改
    • @Mr.Alien 第二个演示正是我想要的。谢谢
    • 是的,我以为你只想忽略带有 # 的那些.. @SajjadAhmad
    【解决方案2】:

    你可以检查工作小提琴jsfiddle.net/bharatsing/t0fkzL5p/

    $("a").click(function(){
        var href=$(this).attr("href");
      if(href!="" && href!="#"){
        $(this).attr("target", "_blank");
      }
      else{
        return false;
      }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      相关资源
      最近更新 更多