使用 Javascript 格式化 HTML 字符串以正确显示

后端传递一个字符串,显示如下:


"Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."


此页面的重点是让您轻松复制粘贴预先生成的电子邮件,但不需要通过句子喷出一堆 html 标签。


有问题的字符串位于 id 为“textBlock”的 a 内。


后端是带有 Oracle DB 的 Java。我可以在某种程度上编辑 java,而我根本无法触摸数据库。我已经使用控制台来处理字符串并以任何方式编辑它似乎可以在我完成编辑后正确显示。innerText 包括像在我的摘要中一样的标签,innerHTML 显示像 <br> 这样的标签。


到目前为止,我已经尝试给 onload 属性调用一个名为 formatText(); 的函数;这样做: temp var = document.getElementById("textBlock").innerText; document.getElementById("textBlock").innerText = var;


以及上面使用innerHTML而不是innerText的函数。我也试过使用 document.write(); 但这会清除页面的其余部分。最后,我在字符串前面添加了一些随机字符,并尝试使用 replace("!@#","") 函数来替换这些字符以模仿“编辑它以任何方式似乎都能正常显示”,我注意到了。


爪哇


out.println("<td align=left id=textBlock onload=formatText();> !@#" + strTemp + "</td>" );


预期的:


你好,


本通知旨在通知您,您违反了HR 政策 XXXXX。


实际的:


Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>.


胡说叔叔
浏览 397回答 2
2回答

UYOU

当 HTML 标签在浏览器中可见时,它通常用 html-entities 编码,以防止它被解析为 HTML。在这种情况下,后处理脚本将<和>字符替换为其实体对应项&lt;和&gt;。禁用这些替换解决了这个问题。

斯蒂芬大帝

如果我理解正确,您想要的是一些剥离 html 标签功能。您可以使用正则表达式var str = "Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."console.log(str)var str2 = str.replace(/<[^>]*>?/gm, '')console.log(str2)如果你想让 html 元素呈现你的 html,你需要使用 DOM 属性 innerHtmlvar str = "Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."document.getElementById('myDiv').innerHTML = str<div id="myDiv">Hi</div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript