特殊html字符转码
如果把一些特殊字符拼接到html代码里,可能会导致浏览器不能按照自己的意图解析。比如:告警指标>='90' "内存利用率超频" 。假如把这句话当成变量content赋值给title,如下:
var _html = '<span title='+content+'></span>';
那么当在浏览器中浏览时,当鼠标移到span上时,显示出来的内容就只有 告警指标 因为拼接代码是大于符号>,被当成标签结束符了。而剩下的内容可能会被当初span的内容显示。
解决办法一:把content转码
String.prototype.escapeHtml = function () { var entityMap = { "&": "&", "<": "<", ">": ">", '"': '"', "'": ''', "/": '/' }; return String(this).replace(/[&<>"'\/]/g, function (s) { return entityMap[s]; }); } var _html = '<span title='+content.escapeHtml()+'></span>'
还有个问题,属性值最好是用双引号扩起来,不然,当出现空格时,titile不会显示空格后面的内容
var _html = '<span title="'+content+'"></span>';
解决办法二:通过jquery attr()或者js setAttribute()方法,把值赋给标签!

浙公网安备 33010602011771号