由于Markdown在编辑Octopress文章的链接时无法指定打开方式,所以很多时候需要使用html写。后来想了一下,为什么不通过javascript把超链接的打开方式默认成新标签实现呢。

JQuery中提供了一个DOM元素插入事件 DOMNodeInserted ,我们可以通过监听这个事件,对没有target属性值的a标签设置其target为_blank。这样就实现了默认新标签打开了。

脚本代码


lineos:false

1
2
3
4
5
6
7
8
9
10
/*To use the  DOMNodeInserted event listening, jquery is required*/
$(document).bind('DOMNodeInserted', function(event) {
$('a[href^="http"]').each(
function(){
if (!$(this).attr('target')) {
$(this).attr('target', '_blank')
}
}
);
});

示例


lineos:false

1
2
3
4
5
6
7
<html>
<script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="https://rawgit.com/androidyue/weekly-scripts/master/javascript/target_blank_link.js"></script>
<body>
<a href="http://droidyue.com">droidyue</a>
</body>
</html>

上述示例在浏览器加载之后,就会对a标签添加target=“_blank”属性。

​每周一脚本@Github​