首页 > firefox对document.write的支持有问题?

firefox对document.write的支持有问题?

无聊,试了试html5,无意中发现个问题。下面的代码贴到chrome、safari下ok,放到firefox下就会有问题。只会打印出一个0,然后就进入加载中的转圈状态。网上简单搜了下还没找到满意的答案,发到这分享下~

html<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>

    <body>
        <div id="result"></div>
    </body>

    <script>
        var i = 0;

        function doit() {
            document.write(i++);
            document.write("<br />");
        }

        setInterval("doit()", 1000)
    </script>
</html>

文档加载完后在Firefox下调用 document.write 真是诡异:
1. 调用 document.write 会隐式调用 document.open
2. 调用 document.open 会清空所有注册过的 timer
3. 调用 document.open 但是不调用 document.close 就会一直菊花转


在文档加载完成之后,document 对象已经关闭了,你再调用 document.write 会隐式地打开文档(document.open)(不然你的字符串往哪里写?)。然后你可以往里边写数据,写完了你调用 document.close 火狐才知道你写好了,这个时候才不转了。

不知道这是不是标准行为,也不知道其它浏览器是怎么想的。反正火狐就是这么想的。

【热门文章】
【热门文章】