Jquery提交到iframe在IE9中不起作用

时间:2013-01-21 06:21:27

标签: jquery iframe internet-explorer-9

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

编辑:我发现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();
    });
}

0 个答案:

没有答案