JavaScript Mac Firefox setInterval () Странность - PullRequest
1 голос
/ 03 марта 2010

Впервые я столкнулся с проблемой в сафари, где заданный интервал будет непредсказуемым, если имя функции не будет заключено в кавычки (и, возможно, оно будет добавлено в скобки):

repeatInterval = setInterval("foo()", 50);

После изменения моего кода для чтения таким образом, он выглядит так, как будто он не выполняется вообще в версии Firefox для Mac.

Я провел дополнительное тестирование, чтобы убедиться, что оно работает нормально в версиях linux и windows (включая 3.0.10 и 3.6 под windows). Единственная комбинация, которая поднимает эту проблему, - это Firefox (в данном случае 3.6) на Mac OS X Snow Leopard.

Он не работает вообще, если не записан в следующем формате:

repeatInterval = setInterval(foo, 50);

Есть ли решение этой проблемы, которое будет работать во всех других браузерах и Firefox на Mac без тестирования операционной системы и браузера в javascript и взлома, чтобы он работал соответствующим образом?

1 Ответ

3 голосов
/ 03 марта 2010

Не передавайте строку в качестве первого параметра setInterval или setTimeout. Вы должны либо передать идентификатор функции (как вы это сделали с setInterval(foo, 50);), либо передать анонимную функцию (используя ключевое слово function).

...