所以这是我的简化代码:
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
)时,应打开一个弹出窗口并显示通过onclick
发送的内容。上面的代码工作正常,我得到弹出结果
one
two
three
但是当我尝试将带角度的括号放在像
这样的文本时出现问题<a onclick="var content = '<one><br>two<br>three' ; showContent(content);">Click here</a>
我以
的形式获得了上述代码的结果two
three
即有角度括号中的文字被转义。
我知道有角度的括号是html实体,我需要逃避它们。我试图为&lt;&gt;发送ASCII即<
和>
到onclick
之类的
<a onclick="var content = '<one><br><two><br><three>' ; showContent(content);">Click here</a>
但是文本在传递给javascript函数时会转换为原始格式,然后在弹出窗口中跳过(即空白弹出窗口)。
所以我的问题是:
答案 0 :(得分:1)
看看你有什么。
<
innerHTML
)表示为HTML,因此<
必须写入<
&
在HTML中具有特殊含义,因此&
必须表示为&
所以&lt;
答案 1 :(得分:-4)
用倒杆逃脱它们。 \
<a onclick="var content = '\<one\>\<br\>two\<br\>three' ; showContent(content);">Click here</a>
测试它。