【发布时间】:2012-12-19 10:35:49
【问题描述】:
我在处理另一个问题时发现了这个错误。列出的 JavaScript 命令的顺序与它们在 Safari 中的执行顺序不同:
例子:
alert('here');
document.write('This is the hidden message.');
alert('You should be seeing the hidden message by now.');
在我的浏览器中,alerts 在document.write() 语句之前执行。我在使用 Safari 版本 5.17、6.0 和 6.0.2 的两个不同的 Mac OS X 上看到了这个错误,但我还没有确认其他人看到过这个错误。
这是小提琴:
谁能确认他们看到了这一点,如果看到了,请告诉我为什么会这样?
【问题讨论】:
-
我的猜测是在 document.write 返回之后但在文本呈现之前触发第二个警报。第二个警报会冻结浏览器执行,因此在您关闭第二个警报之前渲染不会完成。
-
尝试用
console.log替换document.write,看看你是否看到同样的东西。呃..如果 Safari 有一个可用的控制台。 -
我实际上使用 document.write 来创建一个没有 jQuery 的示例,但也许同样的原则也适用。这是一个使用 jQuery 的示例:jsfiddle.net/VqzzU
标签: javascript macos safari