Wil*_*ese 5 javascript firefox jquery escaping
我无法正确显示包含转义字符的值(即撇号存储为\'
和不存在'
,括号是>
和<
而不是>
和<
).
存储在我的数据库中的项目的字符(' < >
)\' < >
分别转义为().当我尝试使用JavaScript动态地将它们添加到页面时,它们以Firefox中的转义形式打印出来,而不是像IE中那样返回到它们的正常值(<
正在打印到HTML而不仅仅是<
).
<html>
<head>
<script type="text/javascript">
$(document).ready(function() {
var str = ">";
$(document.body).html(str);
});
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我知道如果我只是做一个替换,我可以正确打印,但通过这样做,我允许注入HTML代码,这就是我首先逃避字符串的原因.
添加:
首先,我为我的帖子中的错误道歉.仔细检查后,在我使用$().html()的情况下,字符串正确打印.它们无法正确打印的时间是我使用下面的代码.
var str = ">";
$('#inputField').val(str);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,显示文本">",而不是">".有什么我可以做的来解决这个问题吗?
Mrc*_*ief 13
你需要像这样解码它们:
$('#myText').val($("<div/>").html(str).text());
Run Code Online (Sandbox Code Playgroud)
您也可以将解码部分移动到也可以调用它:
function jDecode(str) {
return $("<div/>").html(str).text();
}
$('#myText').val(jDecode(str));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11846 次 |
最近记录: |