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

发布于 2022-08-31 20:21:28 字数 607 浏览 9 评论 0

无聊,试了试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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

比忠 2022-09-07 20:21:28

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

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

阳光下的泡沫是彩色的 2022-09-07 20:21:28

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文