VeeValidateがIE11で使えない時の対応方法

はじめに

VeeValidateを使って、フォームを作っている時にIE11でエラーが発生していることに気が付きました。

シェアの問題で無視しようかと思いましたが、流石に駄目でしょってことで対応することにしました。

 

環境

vue.js 2.6.10
vee-validate.js 3.0.11
rules.umd.min.js 3.0.11

 

IE11でPromise が定義されていません

IE11VeeValidateのページにアクセスをすると、

"'Promise' は定義されていません。" とかいうエラーが表示されます。

 

 

これはIE11Promiseを使う機能を持って無いってことです。(エラーの通りですが

 

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が絶滅することを願って締めようと思います。

今日はこの辺でー

 

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-Form, UI Components, Validation, vue.js, ライブラリ
-, ,