最近、私の Jquery スクリプトが IE9 で動作しなくなりました。非表示の iframe に送信することで、Jquery を使用してファイルをアップロードできるお問い合わせフォームがあります。このスクリプトは FF、Chrome、IE10 で動作し、以前は IE9 で動作していました (8 または 7 ではテストしていません)。私のIframe送信機能は以下の通りです。IE で表示されるエラー メッセージは「未定義」です。私はIE9ブラウザモードでIE10を使用してWindows 8を使用しています。ここには同様の質問がたくさんあることは知っていますが、実行可能な解決策を示唆するものはありません。これを修正するために何を変更する必要があるか誰か教えてもらえますか? ありがとうございました!
編集: Jquery load() が IE for iframe で動作しないことがわかりました。
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();
});
}