编程语言
首页 > 编程语言> > 在网页中查找“旧”的所有实例,并使用javascript bookmarklet将每个实例替换为“new”

在网页中查找“旧”的所有实例,并使用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