我遇到了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>
答案 0 :(得分:1)
html实体有效吗? ©
或®
您真的不需要替换客户端的实体。在某些语言/ CMS /框架中,您可以缓冲输出或拦截输出,然后在服务器端执行替换。
如果你必须在客户端执行类似
的操作var content = $("body").html();
content = content.split('(r)').join('®');
content = content.split('(c)').join('©');
$("body").html(content);
你可以使用一个对象(map)来存储替换,然后迭代它。闪存是相当不可避免的,除非你隐藏内容直到更换完成,这可能更不可取。