JavaScript Mac Firefox Setinterval () Wierdness
-
24-09-2019 - |
Вопрос
Я впервые столкнулся с проблемой с 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
ключевое слово).