有没有人知道在jQuery中从字符串中转义HTML的简单方法?我需要能够传递任意字符串并将其正确转义以便在HTML页面中显示(防止JavaScript/HTML注入攻击).我确信可以扩展jQuery来实现这一点,但我目前还不了解框架来完成这个任务.
还有来自mustache.js的解决方案
var entityMap = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''', '/': '/', '`': '`', '=': '=' }; function escapeHtml (string) { return String(string).replace(/[&<>"'`=\/]/g, function (s) { return entityMap[s]; }); }
或明确地执行.
我最终得到了“&amp; amp; amp; amp;”。我在哪里可以买到万用表
为什么编码`/`?这是[不需要](http://stackoverflow.com/questions/7381974/which-characters-need-to-be-escaped-on-html).
2> travis..:由于您使用的是jQuery,因此您只需设置元素的
text
属性即可:// before: //textvar someHtmlString = ""; // set a DIV's text: $("div.someClass").text(someHtmlString); // after: //<script>alert('hi!');</script>// get the text in a string: var escaped = $("").text(someHtmlString).html(); // value: // <script>alert('hi!');</script>
您错过了必须访问$("div.someClass").html()以获取转义版本的要点.
@travis jQuery网站上记录了这一点:"由于不同浏览器中HTML解析器的不同,返回的文本可能因换行符和其他空格而异." http://api.jquery.com/text/
如果你的字符串中有空格和\n\r\t字符,那么这不是跨浏览器安全的
这不会逃避报价和双引号,这是不好的!http://wonko.com/post/html-escaping
@mklement如果你已经在使用这个解决方案,你就不会遇到任何问题:`$(element2).attr("some-attr",$(element1).html());`See这个例子:http://jsbin.com/atibig/1/edit
@travis谢谢; 我认为这是你暗示的,但只是为了明确:`attr()`做自己的编码,所以你可以直接传递未编码的文本*; 例如,`$(elem).attr("some-attr","Tags | 热门标签RankList | 热门文章
- 1重构Ruby
- 2java:如何为变量自动生成自定义方法
- 3自定义URI方案和Skype链接
- 4有没有办法关闭JIT编译器,这样做会对性能产生影响吗?
- 5因大小而无法上传文件
- 6当键盘出现在swift中时,向上滚动UITableView
- 7Android上的Cordova全屏启动画面仍显示标题栏
- 8Swing Ui倍增面板重影
- 9移动到vim中行中给定字符的最后一个实例?
- 10应用程序在HttpLoggingInterceptor上崩溃
- 11docker组合中'image'和'build'之间的区别
- 12Android 6.0.1上的Spinner内部填充更大
- 13如何在Python中将浮点数舍入到最接近的整数
- 14在换行符和逗号上拆分字符串
- 15使用Ninject获取实例
- 16如何在UWP App中编码/解码url字符串
- 17如何在Visual Studio代码中注释多行?
- 18如何使用spark sc.textFile获取文件名?
- 19CNAME到s3斗亚马逊
- 20OpenCV鱼眼校准会削减过多的图像
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有