我的代码执行出现以下错误: Microsoft JScript运行时错误:由于错误80020101无法完成操作。
以下链接是我在Stackoverflow上找到的内容: Ajax request problem: error 80020101
var div = $("<div class='modal'>").html($(result.getWebFormDesignFieldContentsResult));
传入的信息result.getWebFormDesignFieldContentsResult是一个HTML和JAVASCRIPT的长字符串,尚未解析为DOM。我发现它很奇怪,因为我有一天工作,然后试图添加额外的功能....打破它。 :(
传入的字符串相当大,但是类似于以下内容:
<div>input tags for filtering</div>
<select><option></option>...[150 option tags]... </select>
<anchor tag to return contents>
<script type = "text/javascript">
...stuff fires related to the above items...
</script>
我当时认为将问题作为字符串传递到div标签时出现问题,因为它可能不像脚本标记。
有没有其他人完成这项工作,或者有什么能给我一些关于如何处理这个的指示?我可能想要创建一个字符串对象,然后相应地打破内容,只将html放在html中,然后以不同的方式处理js。
结果字符串(result.getWebFormDesignFieldContentsResult)
您也可以访问此处: http://jsfiddle.net/3kFv2/
<table style='width:inherit;'>
<tr>
<td>
<input type='text' id ='queryInput' onkeypress = 'clearTimeout(timerVar); timerVar = setTimeout(function(){ fetchFieldInfo($("#queryInput").val()); },1000);' />
</td>
<td style = 'text-align:right;'>
<a class = 'modalButton' id = 'queryButton' runat='server' value = 'Re-Filter' onCLick = '$("div.modal").fadeOut(); fetchFieldInfo($("#queryInput").val());'>Re-Filter</a>
</td>
</tr>
<tr>
<td colspan='2' style='margin-left:auto; margin-right:auto; text-align:center;'><select size = '20' id = 'selectList' name = 'selectList' ><option value = '1000'>Abutment Notes</option><option value = '2300'>Abutments Notes</option><option value = '2302'>Abutments Notes Maint Need</option><option value = '2301'>Abutments Notes Remarks</option><option value = '10942'>Concrete Deterioration Maint Need</option></select></td>
<td>
<div style='width:300px;height:300px;' id = 'modalInfoPanel'>
</div>
</td>
</tr>
<tr>
<td></td>
<td style='text-align:right;'>
<a class = 'modalButton' id = 'buttonReturnValue' value = 'Return Selected Element' onClick='$("div.modal, div.overlay").fadeOut();'>Return Selected Element</a>
</td>
</tr>
</table>
<script type = 'text/javascript'>
function ajaxDisplayContents(value){
//alert(value.val());
/*
$('#selectList option').each(function(){
return $(this).val() == '';
}).attr('selected','selected');
*/
$.ajax({
type: 'POST',
url: WEBSERVICE_URL + '/fetchFieldInfo',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({'fe_id': value.val().toString()}),
success: function(result, textStatus, jqXHR){
$('#modalInfoPanel').html(result.fetchFieldInfoResult);
},
error: function(xhr, status, message){
$('#modalInfoPanel').html(status + ' ' + message);
}
});
}
$('select#selectList').change(function(){
ajaxDisplayContents($(this));
});
$(function(){
$('ul li').click(function(){ clicker(this); });
});
function clicker(x){
if($(x).next().is('li') || $(x).next().length == 0){
$.ajax({
type: 'POST',
url:,
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({}),
success: function(result){
$(x).after($('<ul>').append($(result['METHODResult']));
$(x).next().find('li').click(function() clicker(this); });
},
error: function(){
alert('failed to fetch');
}
});
}else if($(x).next().is('ul')){
$(x).next().slideUp(function(){ $(this).remove(); });
}
}
</script>
答案 0 :(得分:4)
我收到了同样的错误80020101。
然后在逐行检查代码时,我意识到我错误地添加了两次:<script<script>
删除这些后,错误就消失了。
请仔细检查所有代码,尤其是打开未正确关闭的代码。
答案 1 :(得分:3)
观察:http://mattwhite.me/blog/2010/4/21/tracking-down-error-80020101-in-internet-exploder.html 告诉你,虽然根目录中存在嵌入式脚本标记等错误,但错误只是声明“存在错误”。
在把这些信息铭记于心之后,我深入研究了我的代码,通过在这里和那里评论出来找到越来越多的问题。我发现的错误是clicker()ajax调用。我看了一会儿,发现原来的ajax电话被注释掉了。这是对未实现且有错误的Web服务的新调用。因为我评论它,它再次正常工作,我只需要为ajax调用正确定义所有内容,一切都会很好。
感谢大家帮助调试。 :)
答案 2 :(得分:0)
在我的情况下,问题是位于某些注释行末尾的特殊字符(重音符号)。
当这些字符接近注释行的末尾时,Internet Explorer会删除其中一些字符(包括换行符)并中断JavaScript代码。
// This comment line could fail because it has an accent at the end aeíou
alert("This line probably doesn't work in IE");
IE会将此行理解为:
// This comment line could fail because it has an accent at the end **aealert**("This line probably doesn't work in IE");
我希望它可以帮到你。