lihaoxi001
[更新]链接自动变蓝,百度贴吧同款
查看:1227   回复:5   发布于2018-04-29 09:16:52
先上代码

<script type="text/javascript">/*让链接可点击*/var oHead1016 = document.getElementsByTagName('body').item(0);var clearLink, excludedTags, linkFilter, linkMixInit, linkPack, linkify, observePage, observer, setLink, urlPrefixes, url_regexp, xPath;

url_regexp = /((https?:\/\/|www\.)[\x21-\x7e]+[\w\/]|(\w[\w._-]+\.(com|cn|org|net|info|tv|cc|gov|edu))(\/[\x21-\x7e]*[\w\/])?|ed2k:\/\/[\x21-\x7e]+\|\/|thunder:\/\/[\x21-\x7e]+=)/gi;

urlPrefixes = ['http://', 'https://', 'ftp://', 'thunder://', 'ed2k://'];

clearLink = function (event) {
  var j, len, link, prefix, ref, ref1, url;
  link = (ref = event.originalTarget) != null ? ref : event.target;
  if (!(link != null && link.localName === "a" && ((ref1 = link.className) != null ? ref1.indexOf("textToLink") : void 0) !== -1)) {
    return;
  }
  url = link.getAttribute("href");
  //console.log url
  for (j = 0, len = urlPrefixes.length; j < len; j++) {
    prefix = urlPrefixes[j];
    if (url.indexOf(prefix) === 0) {
      return;
    }
  }
  return link.setAttribute("href", "http://" + url);
};

document.addEventListener("mouseover", clearLink);

setLink = function (candidate) {
  var ref, ref1, ref2, span, text;
  if (candidate == null || ((ref = candidate.parentNode) != null ? (ref1 = ref.className) != null ? typeof ref1.indexOf === "function" ? ref1.indexOf("textToLink") : void 0 : void 0 : void 0) !== -1 || candidate.nodeName === "#cdata-section") {
    return;
  }
  text = candidate.textContent.replace(url_regexp, '<a href="$1" target="_blank" class="textToLink">$1</a>');
  if (((ref2 = candidate.textContent) != null ? ref2.length : void 0) === text.length) {
    return;
  }
  span = document.createElement("span");
  span.innerHTML = text;
  return candidate.parentNode.replaceChild(span, candidate);
};

excludedTags = "a,svg,canvas,applet,input,button,area,pre,embed,frame,frameset,head,iframe,img,option,map,meta,noscript,object,script,style,textarea,code".split(",");

xPath = '//text()[not(ancestor::' + excludedTags.join(') and not(ancestor::') + ')]';

linkPack = function (result, start) {
  var i, j, k, ref, ref1, ref2, ref3, startTime;
  startTime = Date.now();
  while (start + 10000 < result.snapshotLength) {
    for (i = j = ref = start, ref1 = start + 10000; ref <= ref1 ? j <= ref1 : j >= ref1; i = ref <= ref1 ? ++j : --j) {
      setLink(result.snapshotItem(i));
    }
    start += 10000;
    if (Date.now() - startTime > 2500) {
      return;
    }
  }
  for (i = k = ref2 = start, ref3 = result.snapshotLength; ref2 <= ref3 ? k <= ref3 : k >= ref3; i = ref2 <= ref3 ? ++k : --k) {
    setLink(result.snapshotItem(i));
  }
};

linkify = function (node) {
  var result;
  result = document.evaluate(xPath, node, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
  return linkPack(result, 0);
};

linkFilter = function (node) {
  var j, len, tag;
  for (j = 0, len = excludedTags.length; j < len; j++) {
    tag = excludedTags[j];
    if (tag === node.parentNode.localName.toLowerCase()) {
      return NodeFilter.FILTER_REJECT;
    }
  }
  return NodeFilter.FILTER_ACCEPT;
};

observePage = function (root) {
  var tW;
  tW = document.createTreeWalker(root, NodeFilter.SHOW_TEXT, { //+ NodeFilter.SHOW_ELEMENT,
    acceptNode: linkFilter
  }, false);
  while (tW.nextNode()) {
    setLink(tW.currentNode);
  }
};

observer = new window.MutationObserver(function (mutations) {
  var Node, j, k, len, len1, mutation, ref;
  for (j = 0, len = mutations.length; j < len; j++) {
    mutation = mutations[j];
    if (mutation.type === "childList") {
      ref = mutation.addedNodes;
      for (k = 0, len1 = ref.length; k < len1; k++) {
        Node = ref[k];
        observePage(Node);
      }
    }
  }
});

linkMixInit = function () {
  if (window !== window.top || window.document.title === "") {
    return;
  }
  //console.time('a')
  linkify(document.body);
  //console.timeEnd('a')
  return observer.observe(document.body, {
    childList: true,
    subtree: true
  });
};

setTimeout(linkMixInit, 100);</script>
使用方法:

复制我在上面发的代码。

后台-全局-嵌入相关-模板载入后嵌入然后粘贴我上面发的代码。然后整个网站上面所有的链接都会自动变蓝。


求乐天给我打赏。

%好不好句 
回复列表
默认   热门   正序   倒序
王俊凯
6F
@1749:(在5F的嘀嗒嘀嗒嘀嗒) 有什么用,编辑器上有超链接
 1   2018-05-13 12:10:20 回复
lihaoxi001
5F
@100404:(在4F的易杯水) 可以在我的网站上看看效果:http://6code.xyz/
 1   2018-05-13 08:11:10 回复
王俊凯
4F
@1749:(在3F的嘀嗒嘀嗒嘀嗒) 截图
 1   2018-05-13 05:22:42 回复
lihaoxi001
3F
@100404:(在2F的易杯水) 我亲测
 1   2018-05-13 00:33:15 回复
王俊凯
2F
没用的
 1   2018-05-12 17:27:52 回复

回复:[更新]链接自动变蓝,百度贴吧同款

暂无用户组
0级
游客:

公告

近期本站被人为恶意注册及发布垃圾帖,本站已开启普通用户发帖审核功能,VIP系列用户组及开发者用户组不受影响,一但发现发布违法或垃圾帖的用户,该用户账号将会被永久封号,请大家共同维护互联网环境,共创美好互联网未来。

最新活动

3年个人版授权+2400天豆仅需154元

8年个人版授权+6400天豆仅需385元

终身个人版授权+5600天豆仅需539元

3年尊享版授权+24000天豆仅需1540元

8年尊享版授权+64000天豆仅需3850元

终身尊享版授权+56000天豆仅需5390元

HadSky 5.x 微信时代
服务号 HadSky微信服务号 技术/文档/精帖
订阅号 HadSky微信订阅号 公告/更新/活动
关注送福利,登录送天豆
版块列表

Powered by HadSky 6.1.1

©2015 - 2018 HadSky

购买产品 官方Q群 用户文档 授权查询 网站绑定 关注公众号 陕ICP备13005805号

您的IP:54.198.126.110,2018-08-18 12:45:06,Processed in 0.05331 second(s).

支持原创软件,抵制盗版,共创美好明天!
已有0次打赏