独角兽企业重金招聘Python工程师标准>>>
今天客户反映IE浏览系统又出问题了,但是在谷歌火狐浏览器下面没问题。没办法,IE下启动调试,出现如下错误提示(为了方便调试,我把jquery未压缩版本替换了服务器的***min.js):
点击跳到源码,下断点,再次查询数据,发现
"var handleValue = '';handleValue = paserResult('false','2":
应该是eval的函数不完整,
在 页面下搜索JS文件,发现“paserResult”是在一个叫lchecking.js 里 :
function initHChecking(params) {$("#tbLChecking").flexigrid( {url : 'platformstat/findLCheckings.action',dataType : 'json',.....(略){display : '应答结果',name : 'IsResult',paramcolnames : ['IsResult','CheckReturnContent','CheckReturnTime','CheckTime'],handlefunction : 'paserResult',width : 70,sortable : false,align : 'left'},.....(略)function paserResult(result,CheckReturnContent,CheckReturnTime,CheckTime){if(CheckReturnContent==""){return "<span style='color:red'>未应答</span>";}else{if(TimeDifference(CheckTime,CheckReturnTime)){if(result=="true"){return "应答正确";}else {if(CheckReturnContent == ""){return "";}else{return "<span style='color:red'>应答错误</span>";}}}else{return "<span style='color:red'>应答超时</span>";}}}
原来是引用了flexigrid, 将服务器上的flexigrid.pack.js替换成未压缩版本,找到handlefunction: 继续调试
/** Flexigrid for jQuery - New Wave Grid** Copyright (c) Paulo P. Marinas (/flexigrid) Dual licensed* under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.** $Date: -07-14 00:09:43 +0800 (Tue, 14 Jul ) $*/
发现是多了个特殊字符造成截断了。
var paramcolvalue = data.rows[i][paramcolname];
paramcolvalue = decodeURI(encodeURI(paramcolvalue).replace('%00', '')); (加上这句)
这样处理之后问题暂时解决了。