您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
微信公众号文本地址转超链接,让链接变得可点击。
当前为
// ==UserScript== // @name Wechat Text Link to Hyperlink // @name:zh-CN 微信公众号文本地址转超链接 // @description Wechat Text Link to Hyperlink,Make links Clickable. // @description:zh-CN 微信公众号文本地址转超链接,让链接变得可点击。 // @namespace https://www.runningcheese.com // @version 0.1 // @author RunningCheese // @match https://mp.weixin.qq.com/s/* // @match https://mp.weixin.qq.com/s?__biz=* // @run-at document-start // @icon https://t1.gstatic.cn/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=https://mp.weixin.qq.com // @license MIT // ==/UserScript== const formatLimit = 5; const formatList = new WeakMap(); const reg = /\b((?:https?:\/\/)?(?![\d-]+\.[\d-]+)([\w-]+(\.[\w-]+)+[\S^\"\'\[\]\{\}\>\<]*))/gi; const ignore = ['SCRIPT', 'STYLE', 'A', 'TEXTAREA', 'NOSCRIPT', 'CODE', 'TITLE']; QueryElement(document); let obs = new MutationObserver(m => { m.forEach(mm => { FormatHref(mm.target, mm.addedNodes) mm.addedNodes.forEach(i => QueryElement(i)) }) }); obs.observe(document, { subtree: true, childList: true }); function QueryElement(element) { [...(element.querySelectorAll?.("*") ?? [])].forEach(i => FormatHref(i, i.childNodes))} function FormatHref(target, childNodes) { if (ignore.find(n => n == target.nodeName) || target.translate == false) return let formatTimes = formatList.get(target) || 0 if (formatTimes > formatLimit) return let mark = false; [...childNodes].forEach(c => { if (c.nodeName == '#text' && c.textContent.match(reg)) { console.log(target, c.textContent) c.textContent = c.textContent.replace(reg, (m) => { return `<a href='${m}' target='_blank'>${m}</a>` }) mark = true } }) if (mark) { //console.log(target,target.nodeName, formatTimes) formatList.set(target, formatTimes + 1) target.innerHTML = target.innerHTML.replace(/<a /g, "<a ").replace(/<\/a>/g, "</a>").replace(/' target='_blank'>/g, "' target='_blank'>") } }