您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Turn plain-text URLs into hyperlinks
- // ==UserScript==
- // @name Linkify
- // @version 0.1
- // @namespace http://youngpup.net/userscripts
- // @description Turn plain-text URLs into hyperlinks
- // @include *
- // ==/UserScript==
- // based on code by Aaron Boodman
- // and included here with his gracious permission
- var urlRegex = /\b(https?:\/\/[^\s+\"\<\>]+)/ig;
- var snapTextElements = document.evaluate("//text()[not(ancestor::a) " +
- "and not(ancestor::script) and not(ancestor::style) and " +
- "contains(translate(., 'HTTP', 'http'), 'http')]",
- document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
- for (var i = snapTextElements.snapshotLength - 1; i >= 0; i--) {
- var elmText = snapTextElements.snapshotItem(i);
- if (urlRegex.test(elmText.nodeValue)) {
- var elmSpan = document.createElement("span");
- var sURLText = elmText.nodeValue;
- elmText.parentNode.replaceChild(elmSpan, elmText);
- urlRegex.lastIndex = 0;
- for (var match = null, lastLastIndex = 0;
- (match = urlRegex.exec(sURLText)); ) {
- elmSpan.appendChild(document.createTextNode(
- sURLText.substring(lastLastIndex, match.index)));
- var elmLink = document.createElement("a");
- elmLink.setAttribute("href", match[0]);
- elmLink.appendChild(document.createTextNode(match[0]));
- elmSpan.appendChild(elmLink);
- lastLastIndex = urlRegex.lastIndex;
- }
- elmSpan.appendChild(document.createTextNode(
- sURLText.substring(lastLastIndex)));
- elmSpan.normalize();
- }
- }