问答详情
源自:8-17 编程练习

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()输出内容有什么规则或者限制吗?


提问者:慕粉3163391 2016-04-23 16:55

个回答

  • qaz_0578
    2016-04-26 00:09:07

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

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

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

  • Uauslman
    2016-04-24 15:46:53

    <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>


  • 暖床我最棒
    2016-04-23 18:32:44

    你点击按钮直接触发了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>


  • 鱼丸丸粗面面
    2016-04-23 18:27:02

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