2

我的 Jquery 脚本最近停止在 IE9 中工作。我有一个联系表单,可以通过提交到隐藏的 iframe 来使用 Jquery 上传文件。该脚本适用于 FF、Chrome、IE10,并且曾经适用于 IE9(尚未在 8 或 7 中测试过)。我的 iframe 提交功能如下。我在 IE 中收到的错误消息是“未定义”。我在 IE9 浏览器模式下使用 IE10 在 Windows 8 上。我知道这里有很多类似的问题,但没有一个暗示可行的解决方案。有人能告诉我我需要改变什么来解决这个问题吗?谢谢!

编辑:我发现 Jquery load() 不适用于 iframe 的 IE。

function mcIframeSubmit(){
    // remove iframe if exists
    $('#mcHiddenIframe').remove();

    // change target attribute on form
    mcForm.attr('target', 'mcHiddenIframe');

    // create and add iframe to page
    $('<iframe />', {
        name: 'mcHiddenIframe',
        id: 'mcHiddenIframe',
        style: 'display:none'
    }).appendTo('body');

    // on response from php file
    $('#mcHiddenIframe').load(function(){
        var mcIframeResponse = $(this).contents().find('.mc1').html();
        var mcIframeError = $(this).contents().find('.mc2').html();

        // reset form
        mcResetForm();

        // hide loading image
        $(mcLoading).hide();

        // scroll to top
        $(mcWrapElement).stop().animate({scrollTop: mcForm.offset().top -60},'slow');

        // display response message
        if (mcIframeError == true) {
            mcResponse(mcIframeResponse, true);
        } else {
            mcResponse(mcIframeResponse, true);

            // redirect on success?
            mcSuccessRedirect();
        }

        // stop iframe load
        $(this).unbind('load');

        // remove form target attribute
        mcForm.removeAttr('target');

        // refresh captcha image
        mcReloadRecaptcha();
    });
}
4

0 回答 0