今天客戶反映IE瀏覽系統又出問題了,可是在谷歌火狐瀏覽器下面沒問題。沒辦法,IE下啓動調試,出現以下錯誤提示(爲了方便調試,我把jquery未壓縮版本替換了服務器的***min.js):
javascript
點擊跳到源碼,下斷點,再次查詢數據,發現java
" var handleValue = '';handleValue = paserResult('false','2":jquery
應該是eval的函數不完整,web
在 頁面下搜索JS文件,發現「paserResult」是在一個叫lchecking.js 裏 :json
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) 2008 Paulo P. Marinas (webplicity.net/flexigrid) Dual licensed * under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. * * $Date: 2008-07-14 00:09:43 +0800 (Tue, 14 Jul 2008) $ */
發現是多了個特殊字符形成截斷了。服務器
var paramcolvalue = data.rows[i][paramcolname];
paramcolvalue = decodeURI(encodeURI(paramcolvalue).replace('%00', '')); (加上這句 )函數
這樣處理以後問題暫時解決了。flex