Вопрос

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

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);

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

Это было полезно?

Решение

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top