異なる応答IE-8およびFF getElementByIdを()
-
22-09-2019 - |
質問
私は、次の
何の機能を持っていますfunction test() {
document.getElementById("main").innerHTML="show wait";
// do stuff
document.getElementById("main").innerHTML="show finished";
}
はFFのdivは、「ショー待ち」と表示4秒間、他のものを行うとします その後、「完成ショー」を示します。
でIEはそれが唯一の「完成ショー」が表示されます。私は「やるもの」の後または前に警告を()に置く場合、それは「ショー待ち」と表示されます。
私はそれを解決するために行うことができます、私は他のソリューション、私は機能を分割することができます知っていますか?
解決
それが動作しない理由のために読むリチャードの説明。解決策については、 迅速なハックます:
function test() {
document.getElementById("main").innerHTML="show wait";
setTimeout(function(){
// do stuff
document.getElementById("main").innerHTML="show finished";
},1)
}
は理由この作品は、出口スクリプトの実行モードにブラウザを許可後に、それによって実行され、setTimeout
テキストを画面上に描画することができるようにDOMレンダリングモードに入るべきこと"show wait"
スケジュール「ものを行う」コードです。
他のヒント
あなたがブラウザへの制御のスレッドを返すまで、
IEは、すべての更新が表示されません。警告への呼び出しは、この(ユーザーアクションのスクリプトの待機)を行います。
のいずれかを使用すると、実行のスレッドを持っていながら、目に見えるUIの変更に依存している、または実行のスレッドを返す(簡単に)した後、あなたのスクリプトの2番目の部分を継続するためにタイマーを使用してのような何かをしないでください。
所属していません StackOverflow