Return 外部链接免责声明(href 除外)

Return disclaimer on external links (with href exception)

我有一些 jQuery 代码可以检查站点上的所有 link,如果它是外部 link,则 return 免责声明。工作正常。我不希望免责声明出现在网站上的任何嵌入式 YouTube 视频中。我想更改代码以便发生这种情况。因此,如果 link 不包含 youtube.com,则执行

这是原始工作代码:

$(document).ready(function(){  
  
  $('a').filter(function() { 

     return this.hostname && this.hostname !== location.hostname;

   })

   .click(function () { 

   var x=window.confirm("You are now leaving our website. Click OK to proceed or cancel to stay on this page."); 

  var val = false;
  if (x)
   val = true;
  else
   val = false;
  return val;

        });   
   
});

我想在定义 link 不是 youtube 的代码下方插入代码,但我不知道将它放在原始代码中的什么位置。我是 jQuery 的新手。感谢您的帮助。

if $('a').not('[href^="//www.youtube"], [href^="https://www.youtube"]');

只需将 .not() 链接在您的 .filter() 之后。还有你在点击确认中有很多冗余代码,所以我也清理了一下:

$(document).ready(function(){       
    $('a').filter(function() {  
        return this.hostname && this.hostname !== location.hostname;
    }).not('[href^="//www.youtube"], [href^="https://www.youtube"]').click(function () { 
        return confirm("You are now leaving our website. Click OK to proceed or cancel to stay on this page."); 
    });                 
});