js获取网页当中body里所有标签里面的指定汉字并进行批量替换,不获取标签属性 只获取标签里的所指定汉字内容并批量替换成空白或者自定义汉字。
大神该怎么写呀 网上有好多办法 就是在body标签里 加id 但是有好多页面呢 加id肯定不行呀、、、
我写了代码如下, 测试可行, 供参考:
//主要靠这个函数实现: 将body下的文本节点中的searchWord, 替换为replaceWord是这样写屏蔽关键词吗 依次写下去 其他地方不动
你将"//绑定一个事件测试用"后的内容全部删掉, 这是我的举例说明使用方法, 你的页面没这个按钮, 你放在那里不起作用的.
也就是将你的代码从第43行开始的内容删掉, 自己写上replaceBodyText('我', '你'); 有多少个写多少个. 这样你的网页一打开, 就是替换后的效果.
或者通过循环语句简化, 例如:
[['我', '你'],['好', '不好'], ['他','你'],['女','男']].forEach(function(item){你的办法我做到了 html所有都替换成功了 可是为什么浏览器显示的标题 没有改变呢
还有一个问题上面写到 排除js 意思就是不予其他js冲突是吗
标题不是在body里面, 是在head里面的<title></title>标签里. 可以将我的代码中第14行从replaceNode(document.body)修改为replaceNode(document);
排除script, 原因是body里面可以内嵌<script></script>, 而这里面可以放js代码, js代码并不会显示在页面中,只是起到逻辑控制, 所以可以肯定这里面的文字是不能被替换的, 如果替换了可能导致意外的错误.
如果需要替换的话可以把我的代码中第15行的replaceNode(document.body);修改为replaceNode(document);
修改了 浏览器标题没有生效呢
那奇怪了, 我这边测试可以的呢, 可以将你的代码和HTML截个图吗; 另外一种可能性就是和浏览器有关, 我用的是chrome.