Javascript 使用Tampermonkey解除电话:链接的链接
我想使用Tampermonkey剥离Javascript 使用Tampermonkey解除电话:链接的链接,javascript,jquery,google-chrome,greasemonkey,tampermonkey,Javascript,Jquery,Google Chrome,Greasemonkey,Tampermonkey,我想使用Tampermonkey剥离您要查找的标记名是a,如 tel不是标签名。示例中的标记是a,您确定要专门使用jquery吗?使用jQuery可以实现这一点,但这不是必需的。您当前的代码没有使用它,因此这本身不是Jquery问题。此外,您需要使用@run at document end,请参阅我的答案以获得解释。谢谢您的帮助!看起来很棒,但是,它还不适合我!我已经编辑了我的初始问题,以便在运行时包含代码,如果您注意到警告:“检查”-不幸的是,它在页面加载完成之前显示,尽管我指示代码只在@文档
您要查找的标记名是a
,如
tel不是标签名。示例中的标记是a
,您确定要专门使用jquery吗?使用jQuery可以实现这一点,但这不是必需的。您当前的代码没有使用它,因此这本身不是Jquery问题。此外,您需要使用@run at document end
,请参阅我的答案以获得解释。谢谢您的帮助!看起来很棒,但是,它还不适合我!我已经编辑了我的初始问题,以便在运行时包含代码,如果您注意到警告:“检查”-不幸的是,它在页面加载完成之前显示,尽管我指示代码只在@文档结束时运行
,但如果只等待页面完成加载,我毫不怀疑代码会工作得很好。文档结束
发生在HTML解析之后,但它可能仍在呈现。警报在这里不是一个好的选择。尝试执行console.log(“Links:,linksTel)
并查看数组是否为空。如果是,可能链接是由某个脚本动态创建的。若要检查,请在网站中按Ctrl+U以查看从服务器发送的HTML源代码。如果脚本正在创建链接,有一些解决方案,但它们要么复杂,要么丑陋。是的,我认为涉及CDN,HTML源代码非常少。我认为这是脚本生成的。谢谢。@daneee好吧,如果你不介意一个肮脏的解决方案,只需将整个脚本包装在setInterval
中即可。如果您希望它干净,请阅读,它允许您处理HTML中的任何更改。
// ==UserScript==
// @name Localhost Tel: link remover
// @author Dan
// @match *://localhost/*
// @version 2019.08.15
// @grant none
// @run-at document-start
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
console.log('Started Localhost Tel: killer...');
// ==/UserScript==
var anchors = document.getElementsByTagName('tel');
for (var i = 0; i < anchors.length; i++) {
anchors[i].href = anchors[i].href.split("?")[0];
}
// ==UserScript==
// @name tel: remover
// @match *redacted*
// @version 2019.08.15
// @run-at document-end
// ==/UserScript==
const linksTel = [...document.querySelectorAll("a")].filter((link)=>link.href.startsWith("tel:"));
for(let linkTel of linksTel) {
const parent = linkTel.parentNode;
// Trim will remove extra spaces at the beginning and end
const newTextNode = new Text(linkTel.innerText.trim());
parent.replaceChild(newTextNode, linkTel);
}
alert("check");
const links = document.querySelectorAll("a");
const linksArray = [...links];
const linksTel = linksArray.filter((link)=>link.href.startsWith("tel:"));
for(let linkTel of linksTel) {
const parent = linkTel.parentNode;
// Trim will remove extra spaces at the beginning and end
const newTextNode = new Text(linkTel.innerText.trim());
parent.replaceChild(newTextNode, linkTel);
}