0

バグの途中で立ち往生しています。私は現在のプロジェクトをWindows IEとEDGEに対して検証するためにBrowserStackを使い始めました。私はIE 11で特に問題がありました。Internet Explorer 11 - AJAX呼び出しが呼び出されない

FormDataが.get()メソッドを持たないという問題を最初に解決しましたNPMのformdata-polyfillを使用しました。

FormDataとXMLHTTPRequestを使用して、ネイティブJSログインフォームを作成しています.AJAX呼び出しがまったく起動していないようです。

[送信]ボタンをクリックすると、特定のログインURLに送信する代わりに、POSTリクエストが現在のページ自体に送信されます。

明らかに、イベントはキャッチされず、JavaScriptは実行されません。

マイJavaScriptはWebPACKのを使用してコンパイルされ、そして私は、ログインフォームを取得し、それを適切なイベントを添付するために使用する行は次のとおりです。

var formLogin = document.querySelector("#form-login"); 

    if (formLogin !== null) 
    { 
     var email = document.getElementById("email"); 

     formLogin.addEventListener("submit", _.validateLoginForm); 
     _.formInstance.init(formLogin); 

     _.inputUtil.disableField('#btn-submit-email'); 
     _.inputUtil.disableField('#btn-submit-password'); 

     utils.addAndDispatchEvent('#email', 'input', _.inputUtil.disableSubmitIfFieldIsEmpty('#btn-submit-email')); 
     utils.addAndDispatchEvent('#password', 'input', _.inputUtil.disableSubmitIfFieldIsEmpty('#btn-submit-password')); 

     email.addEventListener("invalid", _.onInvalidEmail); 
    } 

`` `

JSファイルが正常ですにロードされます。

他のブラウザ(Polyfillを入手した後もEdgeを含む)でうまくいくので、どこから来るのか分かりません。

ご意見がありましたらお知らせください。

お寄せいただきありがとうございます。ここ

答えて

0

私の問題は、私はより良いIEでサポートされてい e.preventDefault ? e.preventDefault() : (e.returnValue = false);

によって異なるe.preventDefault() に私の呼び出しを無効にするために必要なことでした。

には、次のポストからこの情報を得た:event.preventDefault() function not working in IE

それから私はイベントでaditionnal問題を持って、CustomEventクラスが正しくのでサポートされていない私は、ES2015が、互換性のJSを使用しないようにバベルTranspilerを追加することによって、いくつかのpolyfillsを追加しました。

まだ完全にIE 11をサポートすることにいくつかの問題がありますが、これは修正されています。

関連する問題