一行 JS 让出站链接在新窗口打开

最近有同学问我,怎么使博客里的出站链接在新窗口打开。

当然是用鼠标中键啦(划掉),其实就是添加 target=_blank 特性啦。这种小事让 JS 去搞定吧~

原理很简单,用正则匹配所有非本站地址的 a 链接,然后给所有 a 添加 target=_blank 属性。当然我直接匹配了裸域,所有本站的子域仍然使用跳转的方式。

代码如下,添加在公共模板就可以了。

<script>
jQuery(document).ready(function($){
	$("a[href*='http://']:not([href*='"+location.hostname+"']),[href*='https://']:not([href*='"+location.hostname+"'])")
		.addClass("external")
		.attr("target","_blank");
});
</script>

PS: 需要添加 JQuery


这里提供一个纯 JS 实现的

<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function(){
    document.querySelectorAll("a[href*='http://']:not([href*='"+location.hostname+"']),[href*='https://']:not([href*='"+location.hostname+"'])").forEach(function(i){i.classList.add("external");i.setAttribute("target","_blank")})
}, false);
</script>