weixin_33737774 2013-12-16 18:35 采纳率: 0%
浏览 24

IE8中的Ajax怪异行为

Here's the code I use to ajax more reviews:

function showMoreReviews(str) {
    var counter = Number($('#counter').val());
    var xmlhttp;
    if (str == "") {
        document.getElementById("reviews").innerHTML = "";
        return;
    }
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    counter = counter + 10;
    $('#counter').attr({ value: counter });

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            //document.getElementById("reviews").innerHTML = xmlhttp.responseText;
            $("#reviews").append("<div id='rnum" + counter + "'>" + xmlhttp.responseText + "</div>");
            $("#rnum" + counter).hide().fadeIn(800);
        }
    }

    console.log(str);
    console.log(counter);
    xmlhttp.open("GET", "/MoreReviewsAjax.asp?ml=" + str + "&c=" + counter, true);
    xmlhttp.send();
}

It works fine in all browsers except in IE8.. Now here is the weird thing - the code will work if in IE8 I go to dev tools and start debugging for scripts. Otherwise it doesn't work.

PS I am using virtual PC and Windows XP w/ IE8 for IE8 tests.

  • 写回答

1条回答 默认 最新

  • helloxielan 2013-12-16 18:35
    关注

    Your console.log() calls are the problem.

    You can add a cheap "polyfill" to your system:

    if (!('console' in window)) {
      window.console = {
        log: function() {},
        dir: function() {},
        // whatever other console functions you use
      };
    }
    

    Those dummy functions won't do anything, but they'll keep IE from losing it's mind.

    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵