我第一次遇到了 safari 的问题,当函数名没有用引号括起来(并且可选地用添加的括号接缝)时,set interval 的行为会变得不可预测:
repeatInterval = setInterval("foo()", 50);
将我的代码更改为以这种方式读取后,它似乎在 Mac 版本的 Firefox 中根本没有执行。
我做了一些进一步的测试,确保它在 linux 和 windows 版本(包括 windows 下的 3.0.10 和 3.6)下完全正常工作。引发此问题的唯一组合是 Mac OS X Snow Leopard 上的 Firefox(在本例中为 3.6)。
除非以以下格式编写,否则它根本不起作用:
repeatInterval = setInterval(foo, 50);
这个问题是否有解决方案可以在 Mac 上的所有其他浏览器和 Firefox 中运行,而无需在 javascript 中测试操作系统和浏览器并对其进行相应的破解?