今天检查自己用jquery+ajax+php做的网站后台登录检测,发现登陆成功后执行页面跳转函数这段javascript(js)代码特效在ie和谷歌浏览器chrome下都可以很好地执行,兼容性还不错。结果到了火狐(firefox)浏览器下settimeout这个js内置函数不执行了,无效了,也没报错!打开firebug指望它能检测出js的错误,结果没用...javascript(js)脚本代码在各浏览器下的兼容是一个很头疼的问题,经过一番调试和搜索,终于解决了settimeout这个js代码在火狐下失效不兼容不能运行和执行的错误。目前这个settimeout可以很好地兼容ie6,7,8,9以及谷歌浏览器chrome,火狐浏览器firefox,苹果浏览器safari,opera。
settimeout是一个很不错的函数,网站页面前端工程师经常将其用于几秒后执行的动作。settimeout这个js内置函数其用法也很简单,下面是settimeout()的函数说明以及用法详解和实例、示例代码:
settimeout()的作用是指定在多少毫秒后执行一个js函数或者表达式代码
settimeout的用法、语法、参数:settimeout(code,millisec)
settimeout参数说明:
code是必需参数。要调用的函数后要执行的 javascript 代码串。
millisec是必需参数。在执行代码前需等待的毫秒数。毫秒和秒之间的换算是:1000毫秒=1秒
settimeout实例代码(1秒后页面跳转到指定的url):
<script language="javascript"> <br>function go(){//定义函数 <br>window.location="main.html";//页面跳转 <br>} <br>window.setTimeout("go()",1000);//1秒后执行函数go <br></script>
但是以上JS代码是无法兼容火狐的,这主要是因为IE和火狐的浏览器引擎是不同的。让这段页面跳转JS代码兼容IE、火狐、SAFARI、OPERA:
<script language="javascript"> <br>function go(){//定义函数 <br>window.location="main.html";//页面跳转 <br>} <br>window.setTimeout(function(){go()},1000);//1秒后执行函数go <br></script>
经过看.看.呗[kankanbei.com]站长的测试,它完美地兼容了各主流浏览器,特此写出来和大家分享。值得注意的是实现页面跳转的JS代码我们习惯写作location.href=页面地址,而这段代码在火狐下也是不能运行的,你需要写作window.location=页面地址。
火狐浏览器下JS代码不兼容setTimeout函数失效无效不运行执行的解决办法











