【发布时间】:2014-11-27 10:05:20
【问题描述】:
我正在运行一个函数来循环浏览电子邮件通讯上的元素并转义 HTML。
function escapeChars() {
iframe.contents().find('[data-mailbuilder="article-content"]')
.children()
.each(function() {
$(this).text(escapeHtml($(this).text()));
});
}
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
然而 jQuery 似乎将 '&' 替换为 '&'没有真正逃避角色。
有什么想法吗?
【问题讨论】:
-
如果你使用
.text()而不是.html(),你为什么需要转义它? -
应用程序使用所见即所得的方式创建电子邮件。下载 iframe 的 HTML 时,它需要使用 Unicode 而不是字符本身。
-
你说的没有实际转义字符是什么意思?
-
所以当文本被添加回它的元素时。它添加为文字 unicode 字符。 “&”未呈现。
-
这就是
.text()和.html()的区别。后者将其呈现为 HTML 代码,前者以字面形式显示。
标签: jquery html escaping special-characters