您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动将页面所有文本转换为链接
当前为
- // ==UserScript==
- // @name AutoLinker
- // @namespace tea.pm
- // @include *
- // @grant none
- // @version 1.1.2
- // @author cljnnn
- // @run-at document-idle
- // @description 自动将页面所有文本转换为链接
- // @description_en translate url in text to link
- // ==/UserScript==
- String.prototype.isEmpty = function () {
- return (this.length === 0 || !this.trim());
- };
- const reUrl = /\b(\w+:\/\/\S*)\b/g;
- function fixURL(node) {
- value = node.nodeValue;
- //console.log("updating link... ", node.nodeType, value);
- newValue = value.replace(reUrl, '<a target="_blank" href="$1">$1</a>');
- var replacementNode = document.createElement('span');
- replacementNode.innerHTML = newValue;
- node.parentNode.insertBefore(replacementNode, node);
- node.parentNode.removeChild(node);
- }
- function shouldIgnoreNode(node) {
- if (!node) return true;
- let name = node.nodeName;
- return (name == "SCRIPT" || name == "NOSCRIPT" || name == "STYLE" || name == "A" || name == "INPUT" || name == "TEXTAREA");
- }
- function traverse(node) {
- if (!node) return;
- if (shouldIgnoreNode(node)) return;
- if (node.nodeType == Node.TEXT_NODE) {
- let value = node.nodeValue;
- if (!value.isEmpty()) {
- if (value.match(reUrl)) {
- fixURL(node)
- }
- }
- }
- if (node.nodeType == Node.ELEMENT_NODE) {
- for (let child of node.childNodes) {
- traverse(child);
- }
- }
- }
- function action(changes, observer) {
- for (let mutation of changes) {
- if (mutation.type !== 'childList') {
- continue;
- }
- if (shouldIgnoreNode(mutation.target)) continue;
- for (let node of mutation.addedNodes) {
- traverse(node);
- }
- }
- }
- var observer = new MutationObserver(action);
- observer.observe(document, { childList: true, subtree: true });
- traverse(document.body);
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址