20190710-上午js计时器和window对象

20190710-上午js计时器和window对象

                                        ——Javee

使用setTimeout或者setInterval每隔一秒在屏幕分别输出hello和world:

<!DOCTYPE html>
<html>
     <head>
          <meta charset="UTF-8">
          <title></title>
          <script>
               var second=0;
               var myTime;              
               
               function print(){
                    second++;                
                    var div = document.createElement("div");
                  
                    if(second % 2 == 1){
                         div.innerHTML = "hello";
                    }else{
                         div.innerHTML = "world";
                    }              
                    document.body.appendChild(div);
               }
              
               function start(){
                    if(!myTime){                                    //确定没开始的情况下才开始(这个bug很容易被忽视)
                         myTime = setInterval(print,1000);                      
                    }
               }
              
               function stop(){
                    clearInterval(myTime);
                    myTime = undefined;
               }    
              
          </script>
     </head>
     <body>
          <button onclick="start()">start/continue</button>
          <button onclick="stop()">stop</button>
          <button onclick="location.reload()">frush</button>
     </body>
</html>

刚开始时,将创建节点写在了函数外面,导致每次调用函数时都没用创建新的节点,只在一个div里面介个显示(这里是变量作用域的问题,因为只在最开始的时候只创建了一个div),写在函数里面则每次调用函数都可以创建一个新的div.

 

setTimeout做一个电子钟:

<!DOCTYPE html>
<html>
     <head>
          <meta charset="UTF-8">
          <title></title>
          <script>
               window.onload = function() {
                    function getTime() {
                         var time = new Date();
                         var year = time.getFullYear();
                         var month = time.getMonth() < 9 ?  "0" + (time.getMonth() + 1) : (time.getMonth() + 1);
                         var date = time.getDate() < 10 ?  "0" + time.getDate() : time.getDate();
                         var hour = time.getHours() < 10 ?  "0" + time.getHours() : time.getHours();
                         var minute = time.getMinutes() < 10  ? "0" + time.getMinutes() : time.getMinutes();
                         var second = time.getSeconds() < 10  ? "0" + time.getSeconds() : time.getSeconds();
                         var day = time.getDay();
                         switch (day){
                              case 1:
                                   day = "一";
                                   break;
                              case 2:
                                   day = "二";
                                   break;
                              case 3:
                                   day = "三";
                                   break;
                              case 4:
                                   day = "四";
                                   break;
                              case 5:
                                   day = "五";
                                   break;
                              case 6:
                                   day = "六";
                                   break;
                              case 7:
                                   day = "日";
                                   break;
                         }
                         document.getElementById("time").innerText = (year + "-" +  month + "-" + date + "  " + hour + ":" + minute + ":" +  second + "  星期" + day);
                         setTimeout(getTime, 1000);
                    }
                    getTime();
               }
          </script>
     </head>
     <body>
          <div id="time"></div>
     </body>
</html>

window.history对象在编写时可不使用 window 这个前缀。为了保护用户隐私,对 JavaScript 访问该对象的方法做出了限制。

一些方法:

  • history.back() - 与在浏览器点击后退按钮相同

  • history.forward() - 与在浏览器中点击向前按钮向前相同

  • history.go() - 括号里面参数可以为正数,也可以为负数,分别表示前进或者后退的页数

 

window.location对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

这种方法既可以用于具有onclick事件的标签,也可以用于满足某些条件进行跳转,特点是方便且灵活。

location.href         //返回当前页面的URL
location.pathname         //返回URL的路径名
location.assign()         //加载新的文档
location.reload()        //重新加载页面

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值