今天客户反映IE浏览系统又出问题了,但是在谷歌火狐浏览器下面没问题。没办法,IE下启动调试,出现如下错误提示(为了方便调试,我把jquery未压缩版本替换了服务器的***min.js):
解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”_SCRIPT257

点击跳到源码,下断点,再次查询数据,发现

" var handleValue = '';handleValue = paserResult('false','2":

应该是eval的函数不完整,

解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”_SCRIPT257_02

在 页面下搜索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 "未应答";
	}else{
	if(TimeDifference(CheckTime,CheckReturnTime)){
	if(result=="true")
	{
		return "应答正确";
	}
	else 
	{	
		if(CheckReturnContent == ""){
			return "";
		}else{
			return "应答错误";
		}
	}
	}else{
		return "应答超时";
	}
	}
}


原来是引用了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) $
 */


解决“SCRIPT257: 由于出现错误 80020101 而导致此项操作无法完成。 ”_SCRIPT257_03

发现是多了个特殊字符造成截断了。

var paramcolvalue = data.rows[i][paramcolname];
 paramcolvalue =  decodeURI(encodeURI(paramcolvalue).replace('%00', '')); (加上这句 )

这样处理之后问题暂时解决了。