疏忽jQuery对内容进行escapeHTML给FeHelper带来的Bug 进入全屏
line

如题:疏忽jQuery.html()对内容进行escapeHTML处理给FeHelper造成的BUG!

一直知道jQuery的html()方法会对内容进行escapeHTML处理,但在FeHelper的JSON自动格式化功能里却一直疏忽了这点(要感谢用户反馈,才想起来),直接导致“<”都显示成了“<”等等。之前获取页面JSON文本的代码是这样的:

/**
 * 从页面提取JSON文本
 * @return {*}
 * @private
 */
var _getJsonText = function(){
    var source = $.trim($('body>pre:eq(0)').html());
    if (!source) {
        source = $.trim($('body').html())
    }
    if (!source) {
        return;
    }
    // 下面就直接拿source进行格式化处理了...
}

要解决这个escapeHTML的问题,还得把html()得到的内容反解回去:

/**
 * 将escape过的HTML再反解回来
 * @param txt
 * @return {String|XML}
 * @private
 */
var _unEscapeHTML = function(txt) {
    return txt.replace(/&amp;/g,'&').replace(/&gt;/g,'>')
        .replace(/&lt;/g,'<').replace(/&quot;/g,'"')
        .replace(/&#39;/g,"'");
};

于是在_getJsonText的方法中,将source进行_unEscapeHTML处理一下即可!

此BUG已在FeHelper4.4版本中修复,再次感谢网友的积极反馈!

阿里巴巴-钉钉-开放平台,能力开放&开发者运营岗位招聘中, 期待你的加入!
钉钉开放,让应用开发更简单
充分开放,是钉钉的重要方向!除致力于为开发者打造丰富的开放API, 更易接入的场景化能力包, 完备的应用开发工具之外, 还需要持续构建开放能力的布道、开发者生态运营体系,包括培训、沙龙、大会、社区合作等等。业务在快速发展,我们也还需要更多优秀的小伙伴加入!

评论区域

line
  • Alien 2014-06-13 19:37:50 回复
    回复 源泉 : 对的,用的之前写的一个本地存储组件
    源泉 said:
    本来没打算评论的,点了下输入框,然后上次评论的昵称信息什么的都自动弹出来了?这难道是用了localstorge?
  • 源泉 2014-06-13 17:27:33 回复
    本来没打算评论的,点了下输入框,然后上次评论的昵称信息什么的都自动弹出来了?这难道是用了localstorge?