目次
はじめに
VeeValidateを使って、フォームを作っている時にIE11でエラーが発生していることに気が付きました。
シェアの問題で無視しようかと思いましたが、流石に駄目でしょってことで対応することにしました。
環境
vue.js | 2.6.10 |
vee-validate.js | 3.0.11 |
rules.umd.min.js | 3.0.11 |
IE11でPromise が定義されていません
IE11でVeeValidateのページにアクセスをすると、
"'Promise' は定義されていません。" とかいうエラーが表示されます。
これはIE11がPromiseを使う機能を持って無いってことです。(エラーの通りですが
IE11にPromiseを設定して解決する
設定が無いなら、設定すれば良いじゃないってことで、polyfill.jsを呼び出してPromiseを設定してやります。
下記をVeeValidateより先に設定します。
window.Promise || document.write('<script src="https:\/\/www.promisejs.org\/polyfills\/promise-7.0.4.min.js"><\/script>')
たぶん必要ないと思いますが、 window.Promise
でブラウザがPromiseを使用できるかを確認して、できないようならpolyfill.jsを呼び出すようにしています。
さいごに
これでIE11でもVeeValidateが使用できるようになりました。
とはいえちょっと呼び出しが遅くなるのが気になりますね。
1日でも早くIEが絶滅することを願って締めようと思います。
今日はこの辺でー