0

これに関する他のエントリを確認しましたが、どれも私の問題ではないようです。以下の HTML ページは Chrome で問題なく動作します。3行出力されます。

ただし、IE9 では最初の行のみが出力されます。これがなぜなのかについてのアイデアはありますか?

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script>
        var process = (function () {

            var count = 0;    

            function _execute() {
                count++;
                document.write("Executed " + count + " time(s).<br\>");
            }

            return {
                add: function () {

                    setTimeout(_execute, 50);
                }
            };
        })();
    </script>
</head>
<body>
<script>
    process.add();
    process.add();
    process.add();
</script>

</body>
</html>

出力クロム:

Executed 1 time(s).
Executed 2 time(s).
Executed 3 time(s).

出力 IE9:

Executed 1 time(s).
4

1 に答える 1

0

ページの読み込み後に document.write を使用しないでください。ページのソースを表示します。ドキュメント全体が置き換えられます。

新しいコンテンツをページに追加するには、appendChild または innerHTML を使用します。デバッグする場合は、コンソールを使用してください。

    var process = (function () {

        var count = 0,
            outElem = document.getElementById("out");

        function _execute() {
            count++;
            var li = document.createElement("li");
            li.innerHTML = "Executed " + count + " time(s)";
            outElem.appendChild(li);
        }

        return {
            add: function () {

                setTimeout(_execute, 50);
            }
        };
    })();

appendChild を使用した例の実行

于 2013-01-30T23:39:05.370 に答える