// ==UserScript== // @name Phone Number Id // @author emmunaf (ema.muna95@gmail.com) // @version 1 // @grant none // ==/UserScript== (function () { const trackRegexUS = /((\d{3})\s?\-?\s?(\d{4}))|(\(\d{3}\)\s?\d{3}\s?\-\s?\d{4})|(\d{3}\s\d{4})/g; const trackRegex = /(3(\d{2})\s?\-?\s?(\d{7}))/g; // tags we will scan looking for un-hyperlinked urls var allowedParents = [ "abbr", "acronym", "address", "applet", "b", "bdo", "big", "blockquote", "body", "caption", "center", "cite", "code", "dd", "del", "div", "dfn", "dt", "em", "fieldset", "font", "form", "h1", "h2", "h3", "h4", "h5", "h6", "i", "iframe", "ins", "kdb", "li", "nobr", "object", "pre", "p", "q", "samp", "small", "span", "strike", "s", "strong", "sub", "sup", "td", "th", "tt", "u", "var" ]; var xpath = "//text()[(parent::" + allowedParents.join(" or parent::") + ")" + "]"; var candidates = document.evaluate(xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var cand = null, i = 0; (cand = candidates.snapshotItem(i)); i++) { if (trackRegex.test(cand.nodeValue)) { var span = document.createElement("span"); var source = cand.nodeValue; cand.parentNode.replaceChild(span, cand); trackRegex.lastIndex = 0; for (var match = null, lastLastIndex = 0; (match = trackRegex.exec(source)); ) { span.appendChild(document.createTextNode(source.substring(lastLastIndex, match.index))); var a = document.createElement("i"); var b = document.createElement("b"); var c = document.createElement('a'); var cleanPhone = match[0].replace(/ /g,""); var linkText = document.createTextNode(cleanPhone); c.appendChild(linkText); c.title = cleanPhone; c.target = "_blank"; c.href = "https://wa.me/39"+cleanPhone+"?text=Buongiorno"; b.appendChild(document.createTextNode(match[0])); a.appendChild(b); span.appendChild(a); span.appendChild(c); lastLastIndex = trackRegex.lastIndex; } span.appendChild(document.createTextNode(source.substring(lastLastIndex))); span.normalize(); } } })(); /* var a = document.createElement('a'); var linkText = document.createTextNode("my title text"); a.appendChild(linkText); a.title = "my title text"; a.href = "http://example.com"; document.body.appendChild(a); */