用jQuery替换页面上的某些文本

时间:2016-10-05 06:04:26

标签: jquery html text replace

我遇到了CMS使用的问题,我无法插入带有注册商标(R)和复制权(C)等符号的产品CMS页面(非常烦人)所以我需要一个解决方法

我试图找出用实际符号'®'替换文本字符串(r)的代码。

我接近,页面加载,文本字符串更改为符号,但似乎陷入无限循环。我该怎么做才能停下来?

此外,从页面加载到字符串更改为符号时会有延迟 - 我能够停止此操作还是缩短它?注意:延迟仅在我在CMS中运行时发生。当我用下面的代码测试页面时似乎没有。

var replaced = $("body").html().replace('(r)','®');
$("body").html(replaced);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Hello, this is a test replacing(r).</h3>
<h4>Hello, this is a test replacing(r).</h4>
<p>Hello, this is a test replacing(r).</p>

1 个答案:

答案 0 :(得分:1)

html实体有效吗? &copy;&reg;您真的不需要替换客户端的实体。在某些语言/ CMS /框架中,您可以缓冲输出或拦截输出,然后在服务器端执行替换。

如果你必须在客户端执行类似

的操作
var content = $("body").html();
content = content.split('(r)').join('&reg;');
content = content.split('(c)').join('&copy;');
$("body").html(content);

你可以使用一个对象(map)来存储替换,然后迭代它。闪存是相当不可避免的,除非你隐藏内容直到更换完成,这可能更不可取。