Settimeout适用于基于chrome / webkit的浏览器,但不适用于firefox

时间:2013-05-18 07:03:15

标签: javascript google-chrome firefox webkit

有人可以解释为什么这个简单的代码适用于基于webkit的浏览器(甚至我的Android手机),但不能在Firefox上运行吗? (代码基本上每1000毫秒刷新一次iframe(bash脚本回显到该文件))

此代码的网站为http://haenh.ddns.us/ui/content/servinfo,它嵌入:http://haenh.ddns.us/ui/?page_id=2(Firefox中的第一个链接我必须手动刷新,而第二个链接显示旋转的绿色圆圈(显示它是下载内容)。在chrome / webkit中,这是令人耳目一新的预期)

<html>
<head>
<script>
function a(){
document.close();
document.write('<br><p align="center"><iframe src="/serv.txt" width="700" height="2000" scrolling="no" frameborder="0"<> <p>Failed</p> </iframe></p><br><br>');
setTimeout('a()', 1000);
// the old one was 15000
}
</script>
</head>
<body onLoad="a()">
<title>ServInfo</title>
<br>

JS is required.

</body>
</html>

1 个答案:

答案 0 :(得分:2)

document.close()之后而不是之前致电document.write(),它将解决“始终加载”问题。


附注:您也可以使用setTimeout(a, 1000);代替setTimeout('a()', 1000);。传递引用总是比使用eval别名更好。

我假设您已经意识到在页面加载后使用document.write()会产生可怕的影响,这会完全覆盖页面。我假设你故意将它用于那种效果。