[英]JavaScript commands not executed in order in Safari
我在處理另一個問題時發現了這個bug。 列出的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
似乎強制在其他瀏覽器中重新繪制,例如Chrome)。
這個(丑陋的)解決方法應該解決它:
alert('here');
document.write('This is the hidden message.');
setTimeout(function() {
alert('You should be seeing the hidden message by now.');
}, 0);
試試這個,如果你有jQuery: http : //jsfiddle.net/2Kcuz/
根據我的評論,我的猜測是你用document.write
添加的文本還沒有渲染(但它仍然存在)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.