我正在使用JavaScript从隐藏字段中提取值并将其显示在文本框中.隐藏字段中的值已编码.
例如,
<input id='hiddenId' type='hidden' value='chalk & cheese' />
Run Code Online (Sandbox Code Playgroud)
被拉进去
<input type='text' value='chalk & cheese' />
Run Code Online (Sandbox Code Playgroud)
通过一些jQuery从隐藏字段中获取值(此时我丢失了编码):
$('#hiddenId').attr('value')
Run Code Online (Sandbox Code Playgroud)
问题是,当我chalk & cheese从隐藏字段中读取时,JavaScript似乎失去了编码.为了逃避chalk & cheese和amp;,我想编码保留.
是否有一个JavaScript库或jQuery方法将对字符串进行HTML编码?
有没有人知道在jQuery中从字符串中转义HTML的简单方法?我需要能够传递任意字符串并将其正确转义以便在HTML页面中显示(防止JavaScript/HTML注入攻击).我确信可以扩展jQuery来实现这一点,但我目前还不了解框架来完成这个任务.
显然,这比我想象的要难得多.它甚至如此简单......
是否有一个功能相当于PHP的内置于Javascript的htmlspecialchars?我知道自己实现起来相当容易,但使用内置函数(如果可用)更好.
对于那些不熟悉PHP,用htmlspecialchars转换这样的东西<htmltag/>进入<htmltag/>
我知道,escape()并且encodeURI()不以这种方式工作.
我想出了一个使用jQuery来逃避HTML的黑客攻击,我想知道是否有人发现它有问题.
$('<i></i>').text(TEXT_TO_ESCAPE).html();
Run Code Online (Sandbox Code Playgroud)
该<i>标签仅仅是一个虚拟的jQuery的需要一个容器设置的文本.
有没有更简单的方法来做到这一点?请注意,我需要存储在变量中的文本,而不是用于显示(否则我只能调用elem.text(TEXT_TO_ESCAPE);).
谢谢!