我需要在node.js服务器中处理嵌入为电子邮件内容的一些HTML代码段。目标是检查代码段是否在视觉上显示为空,如果是,则显示一些占位符文本。
例如,此代码段视为空白:
<div><br></div><div><includetail><!--<![endif]--></includetail></div>
因为在浏览器中呈现时它会显示为空,而此片段在视觉上看起来是非空的:
<div><br></div><div>Hello!</div>
因为在浏览器中呈现代码段时会出现Hello!
。
如何实现这样的函数来返回HTML片段的视觉空白?
答案 0 :(得分:2)
我不会在电子邮件中运行JavaScript
,它的支持非常糟糕。
http://en.wikipedia.org/wiki/Comparison_of_e-mail_clients
通常,jQuery
解决方案类似于以下
$("*").empty().text("placeholder here");
纯JavaScript
解决方案
var list = document.getElementsByTagName('*');
for (var i = 0; i < list.length; i++) {
if (list[i].innerHtml === "") {
list[i].innerHtml = "placeholder here"
}
}
修改强> 既然您在评论中声明要在节点中运行它,请查看cheerio以获取jQuery节点替换。 https://github.com/cheeriojs/cheerio
通过cheerio
后,我的代码会正常工作