特殊html字符转码

如果把一些特殊字符拼接到html代码里,可能会导致浏览器不能按照自己的意图解析。比如:告警指标>='90'  "内存利用率超频" 。假如把这句话当成变量content赋值给title,如下:

var _html = '<span title='+content+'></span>';

那么当在浏览器中浏览时,当鼠标移到span上时,显示出来的内容就只有 告警指标 因为拼接代码是大于符号>,被当成标签结束符了。而剩下的内容可能会被当初span的内容显示。

解决办法一:把content转码

String.prototype.escapeHtml = function () {
    var entityMap = {
        "&": "&amp;",
        "<": "&lt;",
        ">": "&gt;",
        '"': '&quot;',
        "'": '&#39;',
        "/": '&#x2F;'
    };
    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()方法,把值赋给标签!

posted @ 2014-12-28 20:50  过眼云烟之活在当下  阅读(576)  评论(0)    收藏  举报