我在处理另一个问题时发现了这个错误。列出的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上看到了这个错误,但我还没有确认其他人已经看过这个。
这是小提琴:
任何人都可以确认他们看到了这个,如果有,请告诉我为什么会这样?
答案 0 :(得分:3)
严格来说,我认为这不是一个错误。只是它是全部同步的,并且在第二次警报之前没有重新绘制。重绘通常不会发生在浏览器事件循环的同一“滴答”内(尽管document.write
似乎强制在其他浏览器中重绘,例如Chrome)。
这个(丑陋的)解决方法应该解决它:
alert('here');
document.write('This is the hidden message.');
setTimeout(function() {
alert('You should be seeing the hidden message by now.');
}, 0);
答案 1 :(得分:2)
试试这个,如果你有jQuery:http://jsfiddle.net/2Kcuz/
根据我的评论,我的猜测是您添加的文字document.write
尚未呈现(但它仍然存在)。