如何转义 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,即 <
和 >
通过 onclick
就像
<a onclick="var content = '<one><br><two><br><three>' ; showContent(content);">Click here</a>
但是文本在传递给 javascript 函数时被转换为原始形式,随后在弹出窗口中被跳过(即空白弹出窗口)。
所以我的问题是:
- 如何在创建 html 文档时转义 javascript 中的 html 标签?
- ASCII 文本作为参数传递给 javascript 函数时如何自动转换回普通文本?
看看你有什么。
- 人物
<
- 需要表达(因为它分配给
innerHTML
)为HTML所以<
必须写成<
- 但那是 嵌入在 HTML 属性中 ,当 HTML 解析器构造属性时,它将被解释为 HTML DOM 中的值。
&
在HTML中有特殊含义,所以&
必须表示为&
所以&lt;
用倒栏逃避他们。 \
<a onclick="var content = '\<one\>\<br\>two\<br\>three' ; showContent(content);">Click here</a>
测试一下。
所以这是我的简化代码:
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,即 <
和 >
通过 onclick
就像
<a onclick="var content = '<one><br><two><br><three>' ; showContent(content);">Click here</a>
但是文本在传递给 javascript 函数时被转换为原始形式,随后在弹出窗口中被跳过(即空白弹出窗口)。
所以我的问题是:
- 如何在创建 html 文档时转义 javascript 中的 html 标签?
- ASCII 文本作为参数传递给 javascript 函数时如何自动转换回普通文本?
看看你有什么。
- 人物
<
- 需要表达(因为它分配给
innerHTML
)为HTML所以<
必须写成<
- 但那是 嵌入在 HTML 属性中 ,当 HTML 解析器构造属性时,它将被解释为 HTML DOM 中的值。
&
在HTML中有特殊含义,所以&
必须表示为&
所以&lt;
用倒栏逃避他们。 \
<a onclick="var content = '\<one\>\<br\>two\<br\>three' ; showContent(content);">Click here</a>
测试一下。