如何解决转义的标题属性在jquery中变得不转义
| 我正在使用fancybox在弹出窗口中显示带有用户生成的标题的照片。尝试使弹出的标题显示在弹出窗口中时,我注意到了以下行为:console.log( $(\"<a title=\\\"<script>alert(\'test\')</script>\\\">\").attr(\'title\') );
输出:<script>alert(\'test\')</script>
console.log( $(\"<p><script>alert(\'test\')</script></p>\").html() );
输出:<script>alert(\'test\')</script>
console.log( $(\"<p><script>alert(\'test\')</script></p>\").text() );
输出:<script>alert(\'test\')</script>
我的问题是,弹出窗口中的标题是通过调用obj.attr(\'title\')
返回未转义的标题而不是转义的标题。
如何在obj.attr(\'title\')
电话中获得转义标题?
解决方法
如果您在标题中添加了额外的实体级别,则应该可以使用,例如:
$(\"<a title=\\\"&lt;script&gt;alert(\'test\')&lt;/script&gt;\\\">\").attr(\'title\');
这取决于您的服务器端环境,操作方式以及一个PHP示例:
$title = str_replace(\"&\",\"&\",$title);
, 问题不在于获取,设置已经错误(实体将被浏览器替换)。
用$().attr()
设置标题:
$(\"<a/>\").attr(\'title\',\"<script>alert(\'test\')</script>\")
..或将所有出现的ѭ12all替换为&
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。