js获取网页当中body里所有标签里面的指定汉字并进行批量替换

js获取网页当中body里所有标签里面的指定汉字并进行批量替换,不获取标签属性只获取标签里的所指定汉字内容并批量替换成空白或者自定义汉字。大神该怎么写呀网上有好多办法就是... js获取网页当中body里所有标签里面的指定汉字并进行批量替换,不获取标签属性 只获取标签里的所指定汉字内容并批量替换成空白或者自定义汉字。

大神该怎么写呀 网上有好多办法 就是在body标签里 加id 但是有好多页面呢 加id肯定不行呀、、、
展开
 我来答
一年孤独58aa
2019-01-26 · TA获得超过1404个赞
知道小有建树答主
回答量:592
采纳率:92%
帮助的人:442万
展开全部

我写了代码如下, 测试可行, 供参考:

//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWord
function replaceBodyText(searchWord, replaceWord){
    var reg = new RegExp(searchWord, 'g');
    function replaceNode(node){
        node.childNodes.forEach(function(v){
            if(v.nodeName === 'SCRIPT')
                return; //排除<script>标签
            if(!v.hasChildNodes()){
                if(reg.test(v.textContent))
                    v.textContent = v.textContent.replace(reg, replaceWord);
                return;
            }
            replaceNode(v);
        });
    }
    replaceNode(document.body);
}

//绑定一个事件测试用, 点击这个按钮后才会执行;
document.querySelector('#testBtn').addEventListener('click', function(){
    replaceBodyText('中国', '美国');
});

//实际使用中直接调用函数即可:
//以下语句表示将所有文本节点中的"中国"替换为"美国:
//replaceBodyText('中国', '美国');
更多追问追答
追问

是这样写屏蔽关键词吗   依次写下去 其他地方不动

追答

你将"//绑定一个事件测试用"后的内容全部删掉, 这是我的举例说明使用方法, 你的页面没这个按钮, 你放在那里不起作用的.

也就是将你的代码从第43行开始的内容删掉, 自己写上replaceBodyText('我', '你'); 有多少个写多少个. 这样你的网页一打开, 就是替换后的效果.

或者通过循环语句简化, 例如:

[['我', '你'],['好', '不好'], ['他','你'],['女','男']].forEach(function(item){
    replaceBodyText(item[0], item[1]);
});
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式