让外域 a 标签默认打开新标签页

写 Markdown 经常性需要带上链接

一般情况下 [description](url) 会默认解析为 <a href="url">description</a>

然而大多数情况我是不希望这个链接在原标签页中打开的,所以之前遇到这种情况都是手写 target="_blank"

那么问题来了,如果直接这样写岂不是丢掉了 Markdown 本身的简洁性?

于是乎,我 yy 出了一个 js 脚本在 window.onload 之后强行把所有外域 a 标签加上了 target="_blank"

大概代码如下:

window.addEventListener('load', function() {
    var as = document.querySelectorAll('a');
    [].forEach.call(as, function(a) {
        var d = a.href.replace(/\w*:\/\/([^/]+)(\/.*)*/, '$1');
        if (d !== document.domain) {
            a.target = '_blank';
        }
    });
})

借助 Typecho 一点也不方便的插件,最终效果还是不错的

标签: javascript

添加新评论