在网页中查找“旧”的所有实例,并使用javascript bookmarklet将每个实例替换为“new”
作者:互联网
我想要做的是用JS书签或者greasemonkey脚本中的’new’替换网页中的所有’old’实例.我怎样才能做到这一点?我认为jQuery或其他框架是可以的,因为有些黑客将它们包含在bookmarklet和greasemonkey脚本中.
解决方法:
一个防止破坏的功能.这意味着这不会触及任何标签或属性,只会触及文本.
function htmlreplace(a, b, element) {
if (!element) element = document.body;
var nodes = element.childNodes;
for (var n=0; n<nodes.length; n++) {
if (nodes[n].nodeType == Node.TEXT_NODE) {
var r = new RegExp(a, 'gi');
nodes[n].textContent = nodes[n].textContent.replace(r, b);
} else {
htmlreplace(a, b, nodes[n]);
}
}
}
htmlreplace('a', 'r');
书签版本:
javascript:function htmlreplace(a,b,element){if(!element)element=document.body;var nodes=element.childNodes;for(var n=0;n<nodes.length;n++){if(nodes[n].nodeType==Node.TEXT_NODE){nodes[n].textContent=nodes[n].textContent.replace(new RegExp(a,'gi'),b);}else{htmlreplace(a,b,nodes[n]);}}}htmlreplace('old','new');
标签:bookmarklet,javascript,replace,scripting,greasemonkey 来源: https://codeday.me/bug/20190928/1827114.html