解決「SCRIPT257: 因爲出現錯誤 80020101 而致使此項操做沒法完成。 」

  今天客戶反映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

相關文章
相關標籤/搜索