`
v5qqbrowser
  • 浏览: 356633 次
文章分类
社区版块
存档分类
最新评论

setTimeout 浏览器兼容

 
阅读更多


<script type="text/javascript">
function show(str) {
// str是全局变量,函数正确执行
alert(str);
}
function test() {
var str="test";
setTimeout(function(){show(str);},100);
}
test();
</script>

在上面的例子中,调用setTimeout时定义了一个匿名函数,它的函数体是“show(url);”,因为已经定义了函数,所以在定时器调用这个函数时,变量url还是有引用的,因些函数可以正确执行,显示出字符串“test”。

总的来说,使用setTimeout或者setInterval时需要注意以下几点:

1. 定义定时器时如果是使用的表达示,那么其中的变量应该是全局变量,或者是一个直接的值,而不能是局部变量。

2. 定义定时器时如果是定义的调用函数,那么应该只写函数名,而不能加括号,如果加了就是定义返回值了。

3. 在IE里使用定时器时不能传递参数。

4. 如果要在IE里使用定时器时传递参数,可以使用匿名函数,在函数体中调用原来该调用的函数。

分享到:
评论

相关推荐

    setTimeout和setInterval的浏览器兼容性分析

    setTimeout和setInterval的浏览器兼容性分析

    setTimeout函数兼容各主流浏览器运行执行效果实例

    目前这个setTimeout可以很好地兼容IE6,7,8,9以及谷歌浏览器Chrome,火狐浏览器FireFox,苹果浏览器Safari,Opera。setTimeout是一个很不错的函数,网站页面前端工程师经常将其用于几秒后执行的动作。setTimeout这个JS...

    CSS浏览器兼容性Hack大全

    IE6/7实现display:inline-block ...第二种方法(推荐),利用IE6/7的Css专有前缀来触发layout(感觉怎么有点像js的setTimeout): 复制代码代码如下:.test{display:inline-block; *zoom: 1; *display: inline;}

    解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法

    打开FireBUG指望它能检测出JS的错误,结果没用…Javascript(JS)脚本代码在各浏览器下的兼容是一个很头疼的问题,经过一番调试和搜索,终于解决了setTimeout这个JS代码在火狐下失效不兼容不能运行和执行的错误。...

    仅IE不支持setTimeout/setInterval函数的第三个以上参数

    setTimeout/setInterval,这两个函数相信前端开发同学都很熟悉。它们在非IE(6-9)浏览器中还可以如下使用

    用js判断是否为360浏览器的实现代码

    以下代码在360安全浏览器5 和 6 版本中 可用 [removed] var check360browser={ //如果是360 浏览器的话 "ok":function (){ //这里是判断360成功之后的代码 alert&#40;'js -&gt; 360'&#41;...setTimeout(function() {

    jQuery+css实现的时钟效果(兼容各浏览器)

    这里没有做太多的修饰,简单的实现了一下功能,另外,用的是js的setTimeout方法,当时间长了之后,会有一定的延时,建议,在每隔多少分钟执行一次时钟校准!哈哈,都有误差的嘛,反正我是没给你校。 具体代码如下: ...

    兼容主流浏览器的iframe自适应高度js脚本

    兼容主流浏览器的 Iframe 自适应高度,js脚本如下: 代码如下: //iframe 高度自适应 function iframeAutoFit(iframeObj) { setTimeout(function () { if (!iframeObj) return; iframeObj.height = (iframeObj....

    EventEmitter2:具有名称空间,通配符,TTL的nodejs事件发射器实现可在浏览器中使用

    除了具有比EventEmitter更好的基准性能并与浏览器兼容之外,它还通过许多其他不间断的功能扩展了EventEmitter的界面。 如果您喜欢这个项目,请通过显示您的支持 ! 描述 特征 与ES5兼容的UMD模块,支持node.js,...

    jquery select动态加载选择(兼容各种浏览器)

    在ie6以上,我们可以通过 $(“#selectID”).val(“xx”);来个一个select控件赋值。... 代码如下: function set_select_val(sel, val) { if ($.browser.msie && $.browser.version == “6.0”) { setTimeout(function

    goodtimer:人类的setTimeoutsetInterval(等等)

    :heart_with_ribbon: 与浏览器兼容的客户端版本现已发布! &lt; script src =" https://cdn.nickpal.to/goodtimer/goodtimer-3.0.2.js " &gt; &lt;/ script &gt; &lt; script &gt; new goodtimer .

    前端开发常见问题汇总概要总结.docx

    布局与样式兼容性:不同浏览器对CSS标准支持程度各异,导致布局差异,需要处理盒模型、float、positioning、flexbox、grid等方面的兼容问题。 响应式设计:移动设备适配、屏幕分辨率变化下的布局调整和图像自适应等...

    Sinon.JS:测试 JavaScript 的间谍、存根和模拟-开源

    从 Sinon 10 开始,我们停止维护与旧浏览器的兼容性。 相反,我们专注于与常绿浏览器、Node.js LTS 版本和最近的 Safari 版本的兼容性。 通过查看我们的兼容性文档,可以找到有关我们支持的运行时和浏览器的最新...

    更好的弹出式窗口拦截器2「Better PopUp Blocker 2」-crx插件

    更改点:-更改清单属性,使其与新的Google Chrome浏览器兼容。-更正并更新默认白名单:google,facebook,apple,hsbc,仅此而已。 v2.1.6.12:*,使用聪明的CreateEvent方法以避免网站行为中断*,如果用户直接单击v...

    mircotask:高性能任务调度器

    mircotask 为页面性能优化的任务调度器 原理 ...当浏览器不支持MutationObserver时自动降级为普通的setTimeout模式 兼容 所有浏览器 使用 [removed][removed] mircotask(function(){ // TODO }) 参考

    js实现loading效果 spin.js

    spin.js是什么?说白了就是一个loading时的菊花图案。 特点: + 不含图片,无需外接CSS文件 + 原生JavaScript,不依赖任何...+ 使用@keyframe实现动画,用setTimeout()对下兼容 + 能运行在所有主流浏览器上,包含IE6

Global site tag (gtag.js) - Google Analytics