setInterval()在firefox和ie中只显示一次执行结果,chrome中正常
我的代码是<html><head></head><body><scripttype="text/javaScript">functionprintTime(){varno...
我的代码是
<html>
<head>
</head>
<body>
<script type="text/javaScript">
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.write(hours+":"+minutes+":"+seconds+"<br />");
}
setInterval(printTime, 1000); //这里只执行了一次,改换成setInterval('printTime()', 1000);这样的写法也不可以
</script>
</body>
</html>
在chrome浏览器是正常执行的,但是firefox和ie只显示一次结果,之所以说显示一次结果,是因为我看见firefox网页一直没有加载完毕(网页的标签一直在转),似乎是在一遍遍的执行函数,但只有第一次的结果显示出来了,请问这个该怎么解决?在网上也没找到办法,只能问了,谢谢啦。 展开
<html>
<head>
</head>
<body>
<script type="text/javaScript">
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
document.write(hours+":"+minutes+":"+seconds+"<br />");
}
setInterval(printTime, 1000); //这里只执行了一次,改换成setInterval('printTime()', 1000);这样的写法也不可以
</script>
</body>
</html>
在chrome浏览器是正常执行的,但是firefox和ie只显示一次结果,之所以说显示一次结果,是因为我看见firefox网页一直没有加载完毕(网页的标签一直在转),似乎是在一遍遍的执行函数,但只有第一次的结果显示出来了,请问这个该怎么解决?在网上也没找到办法,只能问了,谢谢啦。 展开
1个回答
展开全部
您好!很高兴为您答疑。
因为document.write在文档流关闭后再使用时会重新刷新页面,当document.write在一个function里时每次执行到document.write都会重新刷新页面。
您可以将代码改为:
<html>
<head>
</head>
<body>
<script type="text/javaScript">
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
//document.write(hours+":"+minutes+":"+seconds+"<br />");
console.log(seconds);
}
setInterval(printTime,1000);
</script>
</body>
</html>
然后看下控制台打印的信息就明白啦。
如果对我们的回答存在任何疑问,欢迎继续问询。
因为document.write在文档流关闭后再使用时会重新刷新页面,当document.write在一个function里时每次执行到document.write都会重新刷新页面。
您可以将代码改为:
<html>
<head>
</head>
<body>
<script type="text/javaScript">
function printTime(){
var now = new Date();
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
//document.write(hours+":"+minutes+":"+seconds+"<br />");
console.log(seconds);
}
setInterval(printTime,1000);
</script>
</body>
</html>
然后看下控制台打印的信息就明白啦。
如果对我们的回答存在任何疑问,欢迎继续问询。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询