如何解决用Tampermonkey替换特定格式的href
这种情况是我想在特定页面中替换所有具有不同客户端ID的链接,例如:
<a href="/clients/725144/detail">Details</a>
对此:
<a href="/clients/725144/status">Details</a>
我已经尝试了很多例子,但目前还没有运气。
解决方法
这是一种方法。
var base = "/clients/725144/detail"
var newBase = ""
if (base.includes("detail")) {
newBase = base.replace("detail","status");
}
console.log(newBase);
,
您可以尝试以下方法:
a.setAttribute('href',href.replace(/^(\/clients\/\d+)\/detail$/,'$1/status'))
您甚至可以标记链接已更新:
a.dataset.hrefAltered = true
const replaceLinks = (pattern,replacement,marker = 'hrefAltered') =>
document.querySelectorAll('a').forEach(a => {
const href = a.getAttribute('href');
if (!a.dataset[marker] && href.match(pattern)) {
a.setAttribute('href',href.replace(pattern,replacement));
a.dataset[marker] = true;
console.log(`UPDATE: href=${a.getAttribute('href')}`);
}
});
replaceLinks(/^(\/clients\/\d+)\/detail$/,'$1/status');
<a href="/clients/1/detail">Details</a>
<a href="/clients/12/detail">Details</a>
<a href="/clients/123/detail">Details</a>
<a href="/clients/1234/detail">Details</a>
<a href="/clients/12345/detail">Details</a>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。