js识别外链并新窗口打开

2017/09/1114:01:04js识别外链并新窗口打开已关闭评论 744

代码如下:

script
        $(document).ready (function() {
            var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
            var location_href = window.location.href.replace(parse_url,'$3')
            $('.post-content a:not(:has(img)),.author-name a').hover(function() {
                var this_href = $(this).attr('href');
                var replace_href = this_href.replace(parse_url,'$3');
                if ( this_href != replace_href && location_href != replace_href)
                    $(this).attr('target','_blank'); 
            });
        });

测试:

外链(新窗口打开) 内链(直接打开)

其中 .post-content 和 .author-name 有可能需要匹配自己的主题模板。

短短代码测试了个把小时,主要耗在“a标签里无img”和“本地和点击的href的正则”,哎,果真代码欺负老新人!

历史上的今天
09月
11
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin