我使用一个简单的js小提琴http://jsfiddle.net/um788f6q/设置了我的问题
<input type="text" id="yo">
$("#yo").val('hell'o')
基本上,我想知道是否有一种显示撇号而不是编码字符串的方法。我已经在服务器上对这样的值进行了编码,以防止xss攻击,因此解码并不是真正的有效选择。
谢谢
最佳答案
基本上,我想知道是否有一种显示撇号而不是编码字符串的方法。
没理智
value属性以文本而不是HTML处理。
作为一个可怕的技巧,您可以通过解析HTML,然后读取结果文本节点,将其转换为文本。
$("#yo").val($("<div />").html('hell'o').text());
……但是不要。解决实际的问题。
我已经在服务器上对这样的值进行了编码,以防止XSS攻击
不要那样做
您正在将数据插入JavaScript,而不是HTML。
当您不处理HTML时,请勿对HTML使用防御措施。它可能使您容易受到攻击。
编码要插入JavaScript的数据的合适方法是使用JSON编码器。 (然后,如果将JSON放入HTML属性值中,则使用实体对结果JSON进行编码;如果将JSON放入
/
元素中,则转义任何<script>
字符)。