IE8 setTimeout с анонимной функцией - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть ajax-код, который изменяет ширину div в зависимости от полученного процента, а затем снова зацикливает функцию. То, как я его настроил, теперь работает безупречно в Google Chrome и FF, но в IE8 (только в IE, на котором я тестировал) он зависает на

Вот снимок экрана отладчика. Он показывает, где он в настоящее время обрабатывает, и никогда не покинул это место. Я изменил время ожидания на 1000, и 1 ничего не изменило.

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

onSubmit - это обработчик событий, и вы задерживаете функцию только на 1 мс, я полагаю, что Chrome и FF игнорируют этот код, и IE терпит неудачу, потому что IE глупый.

РЕДАКТИРОВАТЬ о, да, IE не всплывает наSubmit, как все, потому что IE глупо.

EDIT2 весь код для OP здесь: http://pastebin.com/t8vdK8B2

очевидно onSubmit - это имя функции в этом коде, это также обработчик событий.Поскольку функции не являются полиморфными, их следует перезаписывать, но поскольку это обработчик событий, я не уверен.

Редактировать 3

Хорошо, поэтому эта функция onSubmit должнаработать и оставить обработчик событий в покое, но я предлагаю изменить это имя функции, и похоже, что вы пытаетесь передать переменную в функцию в setTimeout, вы можете сделать это следующим образом:

setTimeout(onSubmit,1,id);
0 голосов
/ 28 февраля 2012

Событие onSubmit не всплывает в IE, поэтому вам нужно добавить событие on submit в форму.Например:

setTimeout(function(){document.getElementById("formToSubmit").onSubmit(upload_id); }, 1);

Вот подробности поддержки браузерами события submit.

...