Firefox浏览器。 TypeError:0是只读的

时间:2018-06-12 08:56:54

标签: javascript jquery angularjs firefox

我只在Firefox中遇到此错误 无法找到问题的根源 堆栈跟踪指的是node_modules / jquery / dist / jquery.js
终点是jquery中的这一行 jquery的style方法中的style[ name ] = value;但我的应用程序代码中没有样式方法调用。 也许旧的Angular.js在ng-style评估中称它为什么? 任何建议都表示赞赏。

Angular 1.6
Angular 5.2.9(混合应用程序)
JQuery 3.3.1(是的,我知道它很难看,我们将在我们的应用程序的新Angular版本中摆脱它) Firefox 60.0.1

UPD 错误日志。

  

TypeError:0是只读堆栈跟踪:   风格@的WebPack内部:///./node_modules/jquery/dist/jquery.js:6498:6   组@的WebPack内部:///./node_modules/jquery/dist/jquery.js:6764:5   运行@的WebPack内部:///./node_modules/jquery/dist/jquery.js:6725:4   蜱@的WebPack内部:///./node_modules/jquery/dist/jquery.js:7094:5   jQuery.fx.tick@webpack-internal:///./node_modules/jquery/dist/jquery.js:7436:9   时间表@的WebPack内部:///./node_modules/jquery/dist/jquery.js:6813:3   ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:421:17   onInvokeTask @的WebPack内部:///./node_modules/@angular/core/esm5/core.js:4956:24   ZoneDelegate.prototype.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:420:17   Zone.prototype.runTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:188:28   ZoneTask.invokeTask@webpack-internal:///./node_modules/zone.js/dist/zone.js:496:24   ZoneTask/this.invoke@webpack-internal:///./node_modules/zone.js/dist/zone.js:485:28   计时器@的WebPack内部:///./node_modules/zone.js/dist/zone.js:2025:17

1 个答案:

答案 0 :(得分:1)

在Mozilla Web检查器中调试后,我发现了哪种元素样式受jquery样式方法的影响。 这是一些遗留代码,必须在转换结束后删除元素。

public static boolean ex1(int a[], int b[]){
     boolean p = a != null && b != null; 
     boolean s = false;
     int i = 0;
     int j = 0;
     int cont = 0;
     if (p){
         while( i < a.length && s == false){
             for(j = i; j < b.length; j++){
                 if(a[i] > b[j]){
                     cont++;
                 }
             }
             if(cont == (j - i) + 1){
                 s = true;
             }
             i++;
         }
    }
    return s;
}

正如您所看到的那样,在没有定义css属性对象的情况下调用animate方法。 不知道什么版本的JQuery允许这样的语法,但我解决了像这样的bug更改代码

public class Febbraio0TestEx1 {
    public static void main(String[] args) {
        int[] a0 = null;
        int[] a1 = {};
        int[] a2 = {10, 2};
        int[] a3 = {2, 3};
        int[] b0 = null;
        int[] b1 = {};
        int[] b2 = {4, 0, -1, 1, 1};
        int[] b3 = {4, 0, -1, 1, 3};

        System.out.println(Febbraio0.ex1(a0, b0)==false); 
        System.out.println(Febbraio0.ex1(a0, b1)==false); 
        System.out.println(Febbraio0.ex1(a1, b0)==false); 
        System.out.println(Febbraio0.ex1(a1, b1)==false); 
        System.out.println(Febbraio0.ex1(a2, b0)==false); 
        System.out.println(Febbraio0.ex1(a2, b1)==false); 
        System.out.println(Febbraio0.ex1(a2, b3)==true) ; 
        System.out.println(Febbraio0.ex1(a3, b2)==true) ; 
        System.out.println(Febbraio0.ex1(a3, b3)==false); 
    }
}