jQuery无法在Internet Explorer 9中运行(但适用于Firefox,Chrome和Opera)

时间:2013-08-17 16:00:46

标签: jquery cross-browser internet-explorer-9

我写了一个 jQuery 脚本,该脚本适用于Chrome,Firefox和Opera,但不适用于Internet Explorer 9。

基本上,使用ajax在后台加载的图像应该淡化并在其他图像上传到同一文件夹时动态替换。在Internet Explorer中,脚本不起作用,并且未加载图像。

我尝试使用firebug和IE开发人员工具栏调试,但我有点缺乏经验。

你能救我吗?谢谢!

jQuery代码

$(window).load(function () {
    var data;
    $('.nascosto').hide();
    $('.ciccio').hide();

    $.ajax({
        type: "GET",
        url: "phpdelete.php",
        success: function (data) {

            $("<img/>").attr("src", data).load(function () {
                $(this).remove();
            });
        }
    });


    setInterval(prova, 1000);

    function prova() {
        $.ajax({
            type: "GET",
            url: "phpdelete.php",
            success: function (data2) {
                if (data2 != data) {
                    $('.ciccio').fadeOut(2000, function () {
                        $("<img/>").attr("src", data2).load(function () {
                            $(this).remove();
                            $('.ciccio').css('background-image', 'url(' + data2 + ')').delay(500).fadeIn(2000);
                            data = data2;
                        });
                    });
                }
            }
        });
    }

});

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。调试本身无法帮助我,因为代码实际上是干净的:即使使用Internet Explorer 9开发人员工具控制台,我也没有发现任何错误。

由于没有错误但仍然没有加载图像,问题必须在于ajax调用。我添加了此代码,以便在出现错误时发出警报:

jQuery代码

error: function (jqXHR, textStatus, errorThrown) {
    alert(textStatus);
    alert(errorThrown);
}

Chrome显示没有错误,而Internet Explorer警告NoTransport错误。 经过一些搜索,我发现这个线程'No Transport' Error w/ jQuery ajax call in IE建议在ajax调用之前添加它:

$.support.cors = true;

它有效。