如何在自动定位外部链接以在新窗口中打开时排除某些链接

时间:2013-11-25 13:07:09

标签: jquery hyperlink

我的目标是使用jQuery在新窗口中自动打开所有外部链接,但我遇到了一些麻烦。这是我正在使用的:

<script>
$('a').each(function() {
var a = new RegExp('/' + window.location.host + '/');
if(!a.test(this.href)) {
   $(this).click(function(event) {
       event.preventDefault();
       event.stopPropagation();
       window.open(this.href, '_blank');
   });
}
});
</script>

我遇到的麻烦是,在几个页面中,有一个“打印此页面”链接使用打印,不幸的是上面的定位包括打印功能 - 在新窗口中打开它并在其中丢失页面内容,导致打印窗口空白。有没有一种简单的方法可以从jQuery目标中排除特定的ID或类,然后我可以将其添加到打印链接以避免这种冲突?或者我应该调整jQuery定位以在链接开头寻找http://www.domainname.com以避免将其他任何内容视为外部链接?

1 个答案:

答案 0 :(得分:0)

将一个'noExt'类添加到你不想进入外部的那个,然后将外部函数包装在if语句中,如:

if( !$(this).hasClass('noExt'){
    ... do external stuff . . .
}