Question

J'ai d'abord rencontré un problème avec safari, où l'intervalle de jeu se comporterait unpredicatbly lorsque le nom de la fonction n'a pas été enfermée dans des citations (et éventuellement il coutures avec des parenthèses ajoutées):

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

Après avoir changé mon code à lire de cette façon, il coutures qu'il ne soit pas exécuté du tout dans la version Mac de Firefox.

Je l'ai fait quelques tests en outre un assuré qu'il fonctionne tout à fait bien sous Linux et Windows versions (y compris les 3.0.10 et 3.6 sous Windows). La seule combinaison qui vomit ce problème est Firefox (3.6 dans ce cas) sous Mac OS X Snow Leopard.

Il dose ne fonctionnera pas du tout, sauf écrit dans le format suivant:

repeatInterval = setInterval(foo, 50);

Y at-il un sollution à ce problème qui fonctionnera dans tous les autres navigateurs et Firefox sur Mac, sans test pour le système d'exploitation et le navigateur dans le javascript et le piratage de travailler en conséquence?

Était-ce utile?

La solution

Ne pas passer une chaîne comme premier paramètre de setInterval ou setTimeout. Vous devez soit passer un identificateur de fonction (comme vous avez fait avec setInterval(foo, 50);) ou passer une fonction anonyme (en utilisant le mot-clé function).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top