4

我的代码执行出现以下错误: Microsoft JScript 运行时错误:由于错误 80020101 无法完成操作。

以下链接是我在 Stackoverflow 上找到的内容: Ajax 请求问题:错误 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>
4

3 回答 3

4

我得到了同样的错误 80020101。

然后在逐行检查代码时,我意识到我错误地添加了两次:<script<script>

一旦我删除了这些,错误就消失了。

因此,请仔细检查所有代码,尤其是打开未正确关闭的标签。

于 2012-11-30T13:28:37.810 回答
3

看着: http: //mattwhite.me/blog/2010/4/21/tracking-down-error-80020101-in-internet-exploder.html 告诉你虽然有嵌入脚本标签等错误。 ..从根本上说,错误只是说明“有错误”。

在牢记这些信息之后,我深入研究了我的代码,通过在这里和那里注释掉一些片段来发现越来越多的问题。我发现的错误是 clicker() ajax 调用。我看了一会儿,意识到原来的 ajax 调用被注释掉了。这是对未实现的 Web 服务的新调用并且有错误。由于我将其注释掉,它再次正常工作,我只需为该 ajax 调用正确定义所有内容,一切都会好起来的。

感谢大家帮忙调试。:)

于 2012-07-17T17:02:21.323 回答
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");

我希望它对你有帮助。

于 2015-04-22T07:44:45.253 回答