2017-03-27 18 views
0

JavaScriptを使用してカスタムクラスを作成しましたが、Mac OSのSafariとChromeで完全に正常に動作しますが、iPadでエラーが発生します。Safari for iOSのJavaScriptクラスエラー

Safariの[開発]メニューからデバッグしてエラーを取得しています。奇妙なのは、オンラインで結果が見つからないということです。それについてもっと知ることができます。エラーは "予約語 'class'の予期しない使用です。

マイJS:

class LoadingIndicator{ // error is here 

    constructor(elementID){ 

     this.tick = 8; 

     this.waitStatus = document.getElementById(elementID); 

     this.animateLoaderVar = setInterval(
            this.animateLoader.bind(this), 
            10 
           ) 

    } 

    animateLoader(){   

     if(this.tick == 8){ 

      this.waitStatus.firstElementChild.innerHTML = "."; 

     } 
     else if(this.tick == 16){ 

      this.waitStatus.firstElementChild.innerHTML = ".."; 

     }else if(this.tick == 24){ 

      this.waitStatus.firstElementChild.innerHTML = "..."; 

      this.tick = 0; 

     } 

     this.tick += 1; 

    } 

    removeLoader(){ 

     this.waitStatus.outerHTML = ""; 
     delete this.waitStatus; 

     clearInterval(this.animateLoaderVar); 

    } 

} 
+1

開きがあるかもしれません私はクラスを使用できますか?](http://caniuse.com/#search=class) – Jorius

+0

OSを更新する途中です。それはおそらくそれだと思う。 – VagueExplanation

答えて

1

クラスはES6の一部であり、それはあなたが使用しているiOSのブラウザでサポートされていないように見えます。あなたのiPadはiOSのどのバージョンを使用していますか?

また、ここでそれが記載され、そのクラスの宣言はstricteモードで実行します。https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes

あなたは'use strict';

を使用するように持っているか、それはまだ助けていない場合は、ブラウザのサファリの[とhttps://babeljs.io/

+1

これは今OSをアップデートしているので、それが理由だと思います。私は「クラス」の同等物が何であるかを見ていましたが、投稿したバベルリンクはそのトリックを行うように見えます。驚くばかり。私はES6を書くことに固執することができればいいと思っていますが、待つ方が安全なようです。 – VagueExplanation

+1

これはios9以上でサポートされているはずです:http://caniuse.com/#feat=es6-classですが、バベルを使用すると確信でき、アンドロイド4.4はそれをサポートしていないので、バベルでサポートすることもできます。だから多分それは更新だけです。 – Martina

+0

私たちは開発用のiPadを手に入れました。それはかなり新しくても、iOS 8が付いていました。私が更新したところで動作します。 – VagueExplanation

関連する問題