如何转义 javascript 中的 html 标签?

How do I escape html tags in javascript?

所以这是我的简化代码:

TestHTML.html

<html>
<script src = "TestJs.js"></script>
<body>
<a onclick="var content = 'one<br>two<br>three' ; showContent(content);">Click here</a>
</body>
</html>        

TestJs.js

function showContent(content){

var popup = open("", "PopUp", "width=300,height=200");
var pTag = popup.document.createElement("p");
pTag.innerHTML = content;
popup.document.body.appendChild(pTag);

};        

我的要求是,每当我单击页面(名为 Click here)上的引用 link 时,弹出窗口应打开并显示通过 onclick 发送的内容。上面的代码工作正常,我得到了

形式的弹出结果
one
two 
three

但是当我尝试将尖括号作为文本

时出现问题
<a onclick="var content = '<one><br>two<br>three' ; showContent(content);">Click here</a>

我在表格中得到了上述代码的结果

two
three

即尖括号中的文本被转义。

我知道尖括号是 html 实体,我需要转义它们。我尝试为 <> 发送 ASCII,即 &lt;&gt; 通过 onclick 就像

<a onclick="var content = '&lt;one&gt;<br>&lt;two&gt;<br>&lt;three&gt;' ; showContent(content);">Click here</a>

但是文本在传递给 javascript 函数时被转换为原始形式,随后在弹出窗口中被跳过(即空白弹出窗口)。

所以我的问题是:

  1. 如何在创建 html 文档时转义 javascript 中的 html 标签?
  2. ASCII 文本作为参数传递给 javascript 函数时如何自动转换回普通文本?

看看你有什么。

  1. 人物<
  2. 需要表达(因为它分配给innerHTML)为HTML所以<必须写成&lt;
  3. 但那是 嵌入在 HTML 属性中 ,当 HTML 解析器构造属性时,它将被解释为 HTML DOM 中的值。 &在HTML中有特殊含义,所以&必须表示为&amp;

所以&amp;lt;

用倒栏逃避他们。 \

<a onclick="var content = '\<one\>\<br\>two\<br\>three' ; showContent(content);">Click here</a>

测试一下。