前言:
众所周知 md 文档中使用 [链接文本显示内容](URL)
语法来表示超链接,但是解析器生成的 html 内容中的 a 标签都是 target='_self'
;一般情况下在本页面打开新的页面内容很正常没有什么问题,但是当博文中引用了外站资源的时候,很多情况下并不希望读者在阅读过程中在本页面内进行跳转,会打断阅读的连贯性,但是又不能不提供一手资料的原文链接,折中方案是针对外链在新标签页打开,阅读完后让用户关闭外链后能继续之前的阅读,因此有了下面的想法内容:
实施:
思路: 在不改动 solo 源代码的前提下,利用 solo 提供的后台管理界面在 工具-> 偏好设置-> 信息配置中自定义添加脚本内容,具体代码如下,请自行阅读注释内容:
<script type='text/javascript'> //因为solo中jq的加在顺序在这些自定义配置后面,因此使用原生js的onload方法,保证依赖的jq库能提前载入! window.onload = function () { $(function () { //针对页面的所有a标签进行处理 $('a').each(function(){ /* 因为很多a标签用来做锚链接跳转或者执行js函数或者使用相对路径进行站内跳转, 因此,使用第一个条件保证只选取(可能)进行外部页面跳转的链接, 第二个条件按照自己的域名灵活配置,保证站内跳转不会打开新的页面防止打开页面太多; ps:或者更灵活的思路是 --本站域名应该是从配置文件里面写到ftl模版的,去翻一下ftl语法中如何在js中使用作用域变量, 请自行了解,我这比较随性,就写死了,没人管的话,改天我看下 */ if($(this).attr('href') && $(this).attr('href').indexOf('http')==0 && $(this).attr('href').indexOf('blog.washmore')==-1){ //为满足条件的a标签追加新窗口打开链接的属性 $(this).attr("target","_blank"); } }); }); } </script>
结语:
在自己的 blog 测试了一下,效果还不错,大伙有兴趣的拿去试试呗
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于