后端交出一个显示如下的字符串:
"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显示诸如
.p的标签。
到目前为止,我已经尝试提供一个onload属性,该属性调用名为formatText()的函数;这样做: temp var = document.getElementById(“ textBlock”)。innerText; document.getElementById(“ textBlock”)。innerText = var;
以及上述使用innerHTML而不是innerText的函数。我也尝试过使用document.write();最终,这清除了页面的其余部分。最后,我在字符串前面添加了一些随机字符,并尝试使用replace(“!@#”,“”)函数替换那些字符,以模仿“编辑”它以任何方式似乎都能正确显示”。
java
out.println("<td align=left id=textBlock onload=formatText();> !@#" + strTemp + "</td>" );
预期:
你好
此通知是为了通知您您违反了 HR POLICY 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>.
答案 0 :(得分:1)
(已解决,已添加答案以确保完整性)
当HTML标记在浏览器中可见时,通常使用html-entities对其进行编码,以防止将其解析为HTML。在这种情况下,后处理脚本会将<
和>
字符替换为其对应的实体<
和>
。
禁用这些替换解决了该问题。
答案 1 :(得分:0)
如果我正确理解的话,您想要的是一些剥离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>