web-dev-qa-db-ja.com

Internet Explorer11でのSweetAlert2構文エラー

私は正確に SweetAlert2サンプルページ のコードを使用しています:

swal({
  title: 'Are you sure?',
  text: "You won't be able to revert this!",
  type: 'warning',
  showCancelButton: true,
  confirmButtonColor: '#3085d6',
  cancelButtonColor: '#d33',
  confirmButtonText: 'Yes, delete it!'
}).then((result) => {
  if (result.value) {
    swal(
      'Deleted!',
      'Your file has been deleted.',
      'success'
    )
  }
})

FirefoxとChromeで正常に動作しますが、InternetExplorerはSCRIPT1002: Syntax Errorを表示し、スクリプトを実行しません... IEはこの部分に構文エラーのフラグを立てます。

}).then((result) => {

助けてくれてありがとう

6
Pedro Antônio

(result) => {}は、IEでは完全にサポートされていない矢印関数です。これを修正するには、従来の匿名関数を使用する必要があります。

swal({
  // options...
}).then(function(result) {
  if (result.value) {
    swal('Deleted!', 'Your file has been deleted.', 'success');
  }
});
17
Rory McCrossan

IE11は、 矢印関数約束 などの最新のES6機能をサポートしていません。

これを修正するには、Babelを使用してコードをコンパイルするか、従来のfunction構文で Promise-polyfill を使用する必要があります。

swal(...)
  .then(function(result) {
    console.log(result.value)
  })

SweetAlert2の使用法についてもっと読む: https://github.com/sweetalert2/sweetalert2#usage

3
Limon Monte

Result.value私の終わりには機能していません。これが私のコードです:

.then(function (result) {
        if (result) {
           //Implement Ajax here....
           swal({
                        title: "Error!",
                        text: " Data was used and can't be deleted.",
                        icon: "error",
                        button: "Ok!",
                    });
         }
 });

匿名関数に加えて、IEでswalを完全に機能させるには、必要な追加およびスクリプトタグ

<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/core.js"></script>

https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support に見られるように

0
Pedro Antônio