我使用JavaScript从隐藏字段中拉出一个值并在文本框中显示它。隐藏字段中的值被编码。
例如,
<input id='hiddenId' type='hidden' value='chalk & cheese' />
被卷入
<input type='text' value='chalk & cheese' />
通过一些jQuery来获取隐藏字段的值(在这一点上,我失去了编码):
$('#hiddenId').attr('value')
问题是当我读粉笔&cheese从隐藏字段,JavaScript似乎失去了编码。我不希望价值是粉笔和奶酪。我想要字面上的amp;被保留。
是否有JavaScript库或jQuery方法可以对字符串进行html编码?
我有一个类似的问题,解决它使用函数encodeURIComponent从JavaScript(文档)
例如,在你的例子中,如果你使用:
<input id='hiddenId' type='hidden' value='chalk & cheese' />
and
encodeURIComponent($('#hiddenId').attr('value'))
你会得到粉笔%20%26%20奶酪。甚至空格也要保留。
在我的情况下,我必须编码一个反斜杠,这段代码完美地工作
encodeURIComponent('name/surname')
我的名字是% 2姓氏
选择escapeHTML()在prototype.js中做什么
添加这个脚本可以帮助你逃脱html:
String.prototype.escapeHTML = function() {
return this.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')
}
现在你可以在脚本中对字符串调用escapeHTML方法,比如:
var escapedString = "<h1>this is HTML</h1>".escapeHTML();
// gives: "<h1>this is HTML</h1>"
希望它能帮助任何人寻找一个简单的解决方案,而不必包括整个prototype.js