【发布时间】:2018-05-05 07:20:17
【问题描述】:
我陷入了一个错误。我开始使用 BrowserStack 来针对 Windows IE 和 EDGE 验证我当前的项目,但我遇到了 IE 11 的一个特殊问题。
我首先解决了一个问题,即 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)。
如果您有任何想法,请告诉我!
感谢收听。
【问题讨论】:
标签: javascript internet-explorer xmlhttprequest internet-explorer-11