我需要在 Node.js 服务器中处理一些作为电子邮件内容嵌入的 HTML 片段。目标是检查代码片段在视觉上是否显示为空,如果是,则显示一些占位符文本。
例如,此代码段在视觉上被认为是空的:
<div><br></div><div><includetail><!--<![endif]--></includetail></div>
因为在浏览器中呈现时它会显示为空,而此代码片段在视觉上被认为是非空的:
<div><br></div><div>Hello!</div>
因为在浏览器中呈现代码段时会出现 Hello!
。
如何实现这样一个函数来返回 HTML 片段的视觉空白?
最佳答案
我不会在电子邮件中运行 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后将正常工作
关于javascript - 使用 Javascript 检查 HTML 片段在视觉上是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45331329/