0

我编写了一个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;
                        });
                    });
                }
            }
        });
    }

});
4

1 回答 1

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;

它有效。

于 2013-08-18T09:47:05.120 回答