为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡说叔叔 2021-07-13 17:01:03
后端传递一个字符串,显示如下:"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>.
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

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

禁用这些替换解决了这个问题。


查看完整回答
反对 回复 2021-07-15
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

如果我理解正确,您想要的是一些剥离 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 属性 innerHtml


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>."


document.getElementById('myDiv').innerHTML = str

<div id="myDiv">Hi</div>


查看完整回答
反对 回复 2021-07-15
  • 2 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信