效果图:

页面代码

 <!DOCTYPE html>
 <html>
 <head>
   <meta charset="UTF-8">
   <title>home</title>
 </head>

 <body>
   <!-- 页面文字 -->
   <h1>操作成功</h1>
   <span id="time">5</span>
   <span>秒后回到主页</span>
   <a href="back()">返回</a>  <!-- 也可以写成javascipt:back(); -->
 </body>
 </html>

 <script type="text/javascript">
   //获取要定时元素的值
   var num=document.getElementById("time").innerHTML;
   //定时函数
   function count(){
     num--;
     document.getElementById("time").innerHTML=num;
     if(num==0){
       window.location="http://www.imooc.com"; //时间到点则跳转到指定页面
     }
   }
   setInterval("count()", 1000);   //调用定时方法
   function back(){                //返回前一页面的方法
     window.history.back();        //同window.history.go(-1);
   }
 </script>

要注意的问题(html代码的顺序执行性)

如果脚本代码的位置放在html代码的前面,如下:

 <!DOCTYPE html>
 <html>
 <head>
   <meta charset="UTF-8">
   <title>home</title>
 </head>
 <script type="text/javascript">
   //获取要定时元素的值
   var num=document.getElementById("time").innerHTML;
   //定时函数
   function count(){
     num--;
     document.getElementById("time").innerHTML=num;
     if(num==0){
       window.location="http://www.imooc.com"; //时间到点则跳转到指定页面
     }
   }
   setInterval("count()", 1000);   //调用定时方法
   function back(){                //返回前一页面的方法
     window.history.back();        //同window.history.go(-1);
   }
 </script>
 <body>
   <h1>操作成功</h1>
   <span id="time">5</span>
   <span>秒后回到主页</span>
   <a href="back()">返回</a>
 </body>
 </html>

浏览器中运行代码则会出错,显示第9行出错:

TypeError: null is not an object (evaluating 'document.getElementById("time").innerHTML')

原因是HTML代码在页面载入是顺序执行(函数在被调用时才执行),当执行到:

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

id为"time"的span标签的内容并未加载,所以提示说返回值为空。

如果选择脚本代码在html代码之前,则需要将这条语句写到函数体内。

*javascirpt函数在页面加载时自动执行的方法:

方法一:1 <script type="text/javascript">
 function load(){
 alert('hello');
 }
 </script>

 <body onload="load()">
方法二:1 <script>
 window.onload = function(){
     alert("hello");
 }
 </script>

 <body>

JS实现操作成功定时回到主页效果的更多相关文章

  1. js 表格操作 全选和反选效果 案例

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作

    ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作 .操作成功后刷新父页面 $this->assign('jumpUrl', "javascript:wi ...

  3. JS实现回到顶部效果

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

  4. 页面滚动事件和利用JS实现回到顶部效果

    页面滚动 事件:window.onscroll, 获得页面滚动位置:document.body.scrollTop: HTML代码: 这里注意此处逻辑,大于500就显示,否则就隐藏,还有注意如果变量名 ...

  5. 在Node.js中操作文件系统(一)

    在Node.js中操作文件系统 在Node.js中,使用fs模块来实现所有有关文件及目录的创建,写入及删除操作.在fs模块中,所有对文件及目录的操作都可以使用同步与异步这两种方法.比如在执行读文件操作 ...

  6. 执行插件的替代方式:用JS调用操作

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复229或者20161028可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  7. Rails : css或js文件无法成功预编译或调用jquery类插件时预编译问题

    调用bootstrap css框架时,将bootstrap文件夹放入 vendor/assets/下 bootstrap文件结构如下:    [shenma@localhost demo]$ ls v ...

  8. javascript 特效实现(2)——回到顶部效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. jquery实现"跳到底部","回到顶部"效果

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

随机推荐

  1. LightOJ1158 Anagram Division(状压DP)

    题目问一个数字字符串的不重复全排列有几个能被d整除. dp[S][m]表示用字符集合S构成的%d为m的数字字符串个数 dp[0][0]=0 我为人人转移,dp[S+{x}][(m*10+str[x]- ...

  2. BZOJ1525 : [POI2006]Zos

    由于k很小,所以随机一组解的正确率有90%以上. 每次随机选取一个没被删除的点,然后将与其相邻的点都删去即可. #include<cstdio> #include<cstdlib&g ...

  3. HTML5离线应用无法更新的定位与解决

    一.些许前提 最近在制作一个Web应用, 其中用到了HTML5的离线应用功能(offline application), 离线应用的概念就不再阐述, 可以查看这两篇文章: http://www.ibm ...

  4. PNG无损压缩工具Optipng【备忘】

    Optipng 是专门的 PNG 图像优化工具. 支持WINODWS.LINUX 地址:http://optipng.sourceforge.net/ 另:jpegoptim 优化 jpeg 图片 地 ...

  5. TYVJ P1015 公路乘车 &&洛谷 P1192 台阶问题 Label:dp

    题目描述 有N级的台阶,你一开始在底部,每次可以向上迈最多K级台阶(最少1级),问到达第N级台阶有多少种不同方式. 输入输出格式 输入格式: 输入文件的仅包含两个正整数N,K. 输出格式: 输入文件s ...

  6. TYVJ P1082 找朋友 Label:字符串

    描述 童年的我们,对各种事物充满了好奇与向往.这天,小朋友们对数字产生了兴趣,并且想和数字交朋友.可是,怎么分配这些数字才能使得每个小朋友都唯一地找到一个数字朋友呢?C小朋友说:咱们按自己名字的字典序 ...

  7. 【BZOJ】1878: [SDOI2009]HH的项链(树状数组)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1878 我太弱了,看题解才过的. 一开始看到此题,我想了想在线做法,但之后觉得这个想法可能是错的:维护 ...

  8. 实现自己的Linq to Sql

    之前写过一篇<统一的仓储接口>,为了方便使用不同的仓储.在我们的项目中使用的是EF4.0,但是这个版本的EF有一些性能问题没有解决,又不想升级到EF6,具体EF6有没有解决暂时不清楚.我们 ...

  9. python 面向对象的三大特征之 封装

    封装:私有化 class Person(object): def __init__(self): self.__gender = "man" #在类的属性名称前面加__ self. ...

  10. [APAC]手动截取当前活动窗口,并且按规则命名(1/2)

    Function Take-ScreenShot { <# .SYNOPSIS Used to take a screenshot of the desktop or the active wi ...