Как мне исправить `Internet Argument Code: 0` в Internet Explorer 8? - PullRequest
2 голосов
/ 17 марта 2012

у меня есть эта строка где-то в моем файле JS

while(this.c.offsetWidth > this.w - s && --exit){
   w = isNaN(this.cw[0])? this.w - s : --this.cw[0];
   if(w < 1 || this.w < Math.max(1, s)){break;}
   this.c.style.width = isNaN(this.cw[0])? this.w - s + 'px' : --this.cw[0] + this.cw[1];
  }

IE постоянно говорит мне Invalid Argument code:0

, но он отлично работает в других браузерах (как и ожидалось от IE)

Ответы [ 2 ]

2 голосов
/ 17 марта 2012

Я думаю, что проблема заключается в этой строке:

this.c.style.width =
    isNaN(this.cw[0]) ? this.w - s + 'px' : --this.cw[0] + this.cw[1];

Если вы тщательно продумаете значение this.c.style.width, вы увидите, что для него будут заданы разные результаты. Точно, в первом вы используете 'px', а во втором - нет. Очевидно, что один из них прав, а другой неправ ...

Вот еще один пример , где проблема заключалась в конечных символах.

0 голосов
/ 17 марта 2012

Может ли быть проблема порядка операций в вашей троице? См. Изменение ниже, где я поставил скобки вокруг this.w - s, чтобы убедиться, что операция выполняется перед добавлением «px»:

this.c.style.width = isNaN(this.cw[0])? (this.w - s) + 'px' : --this.cw[0] + this.cw[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...