2017-03-27 61 views
0

我在Javascript中做了一个自定义类,尽管它在Mac OS上的Safari和Chrome上运行得非常好,但它在iPad上出错。iOS上Safari的JavaScript类错误

我正在通过Safari上的Develop菜单调试以获取错误。奇怪的是,网上没有结果,我可以详细了解它。错误是“意外使用保留字'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

打开你的浏览器Safari浏览器[我可以使用类吗?](http://caniuse.com/#search=class) – Jorius

+0

它正在更新操作系统。我想可能是这样。 – VagueExplanation

回答

1

类是ES6的一部分,所以它看起来像它不是在iOS浏览器,你正在使用中的支持。您的iPad使用的是哪个版本的iOS?

而且,这里是说,类声明stricte模式下运行:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes

您可能需要使用'use strict';

,或者如果它仍然没有帮助有https://babeljs.io/

+1

它现在正在更新操作系统,我猜这就是为什么。我正要看看什么是“班级”,但是你发布的babel链接看起来好像会起作用。真棒。我可以坚持写ES6的愿望,但它看起来更安全,等待。 – VagueExplanation

+1

它应该支持ios9及以上版本:http://caniuse.com/#feat=es6-class,但有了babel你可以肯定的,而android 4.4不支持它,所以babel你也可以覆盖它。所以也许这只是更新。 – Martina

+0

我们获得了开发iPad,虽然它相当新,但它有iOS 8。它现在工作,我已经更新。 – VagueExplanation