[JavaScript]document.writeの実行順序(IEがバカ過ぎる)

document.writeで外部jsを呼び出し、その中で定義された関数を
実行しようとしても、IEだけ、うまくいかない。
setTimeoutとかを仕込み、関数が定義されるまでループさせたりして
回避してたけど、なぜそうなるのか気になったので、試してみた。

書いたjsはこんな感じのシンプルなもの。

<script>
document.write('a');
document.write('<scr' + 'ipt src="./b.js"></scr' + 'ipt>');
document.write('c');
</script>

b.jsの中身はこれ。

document.write('b');

とりあえず、FFで実行してみる。
(結果)
abc

ま、そうですよね。

IEで実行してみる。
(結果)
acb

え?なぜ?
しかも、bが若干遅いし。
あほか。

Chrome,Safariでも見てみたけど、普通に「abc」
⇒サンプル

3 Thoughts on “[JavaScript]document.writeの実行順序(IEがバカ過ぎる)

  1. タムタム on 2011/03/31 at 09:07 said:

    このサンプルは笑った。IEが本当にバカに見える。
    そして、document.write問題がわかりやすい。

  2. skryo on 2011/03/31 at 09:48 said:

    コメントありがとうございます。
    IEの動きがかなりわかった気がします。
    もうちょい検証してみます。

  3. Pingback: IEとJavascriptの実行順序 « FLAMA技術Blog

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation