为了账号安全,请及时绑定邮箱和手机立即绑定

document.write()输出问题

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>浏览器对象</title>

</head onload="timecount()">

<body>

<h2>操作成功</h2>

<input type="button" value="返回" onclick="b_ack()" />

<script type="text/javascript">

var s_econd=5;

function timecount(){

if(s_econd==0){

window.location.assign("http://www.imooc.com/");

}

document.write(s_econd+"秒之后返回");

s_econd--;

setTimeout(timecount,1000);

}

function b_ack(){

window.history.back();

}


</script>

</body>

</html>


这里的document.write()为什么不起作用?使用document.write()输出内容有什么规则或者限制吗?


正在回答

4 回答

setTimeout(timecount,1000);  改成  setTimeout("timecount()",1000)

你还要在函数外放一个setTimeout("timecount()",1000)

不知道为啥那个onload="timecount()"没有起作用

0 回复 有任何疑惑可以回复我~
#1

慕粉3163391 提问者

setTimeout()这两种形式都可以,onload没起作用因为我不小心放</head>里了,放<body>就行了
2016-04-26 回复 有任何疑惑可以回复我~

<html>

 <head>

  <title>浏览器对象</title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gkb"/>   

 </head>

 <body>

  <!--先编写好网页布局-->

  <p><strong>操作成功</strong></p>

   <p><span id="time"></span>秒后回到主页<a href="http://www.imooc.com">返回</a></p> 

    

  <script type="text/javascript">  

 

   //获取显示秒数的元素,通过定时器来更改秒数。

    setTimeout("myTime()");

    var num=5;

   // window.open('http://baidu.com');

    function myTime(){

        document.getElementById("time").innerHTML=num;

        num=num-1;

      setTimeout("myTime()",1000);

   //通过window的location和history对象来控制网页的跳转。

        if(num==0){

         window.history.go(0);

          //window.location.assign("hppt://www.imooc.com/");

        }

    }

 </script> 

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

Uauslman

用innerHTML设置。
2016-04-24 回复 有任何疑惑可以回复我~

你点击按钮直接触发了b_ack()函数,直接就执行了window.history.back();返回历史上一页,根本没有机会执行到document.write();语句

你的代码整体逻辑存在问题,大致帮你修改下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>浏览器对象</title>

</head onload="timecount()">

<body>

<h2>操作成功</h2>

<input type="button" value="返回" onclick="timeCount()">

<script type="text/javascript">

var second=5;

function timeCount(){

  if(second>0){

    document.write(second+"秒之后返回");

    second--;

    setTimeout(timeCount,1000);

  }else{

    back();

  }

}

function back(){

  //5秒结束后要执行的语句

  window.location.assign("http://www.imooc.com/");

}

</script>

</body>

</html>


0 回复 有任何疑惑可以回复我~
#1

慕粉3163391 提问者

不是啊,原题要求是“1. 如果打开该页面后,如果不做任何操作则5秒后自动跳转到一个新的地址,如慕课网主页。2. 如果点击“返回”按钮则返回前一个页面” 所以不是点返回按钮触发倒计时命令,而是点按钮跳出倒计时并返回之前的页面; 还有一个问题是刚执行你的代码发现他的显示是“5秒之后返回4秒之后返回3秒之后返回2秒之后返回1秒之后返回”,没有覆盖之前的显示,感觉不懂得真多啊,哈哈
2016-04-23 回复 有任何疑惑可以回复我~

那么我也有个问题,onload函数是随便放在哪里都可以的吗?body和head里有什么区别吗?

0 回复 有任何疑惑可以回复我~
#1

慕粉3163391 提问者

。。。谢谢你提醒了我。。我才发现我一走眼把onload放</head>里去了,换过来就能实现了,不过原先hTMLL里的输出文本会被document.write<>输出覆盖掉,所有返回功能就实现不了了
2016-04-23 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

document.write()输出问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信