疏忽jQuery对内容进行escapeHTML给FeHelper带来的Bug 进入全屏
如题:疏忽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(/&/g,'&').replace(/>/g,'>')
.replace(/</g,'<').replace(/"/g,'"')
.replace(/'/g,"'");
};
于是在_getJsonText的方法中,将source进行_unEscapeHTML处理一下即可!
此BUG已在FeHelper4.4版本中修复,再次感谢网友的积极反馈!