Javascript - setTimeout函数

时间:2012-03-26 12:54:10

标签: javascript

我尝试开发一个页面,我必须使用setTimeout函数,因为我需要在两秒钟后在我的页面加载我的视频。

为了做到这一点,我写了这个,

 window.onload = function () {
        player = new Player('playerObject');
        setTimeout(player.playByUrl($mp4Link),3000);
    }

但这不起作用为什么?

6 个答案:

答案 0 :(得分:3)

使用回调:

setTimeout(function(){
   player.playByUrl($mp4Link);
},3000);

使用之前的语句,代码正在执行 (因为您通过指定param和括号直接调用它,例如playByUrl($mp4Link))而{{1需要回调。

答案 1 :(得分:3)

您无法为该功能添加参数。但是你可以简单地使用匿名函数作为回调并在那里调用函数(带参数)。

window.onload = function () {
    player = new Player('playerObject');
    setTimeout(function() {
        player.playByUrl($mp4Link);
    }, 3000);
}

答案 2 :(得分:1)

setTimeout需要一个函数

window.onload = function () {
   player = new Player('playerObject');
   setTimeout(function(){
       player.playByUrl($mp4Link);
   },3000);
}

答案 3 :(得分:1)

您需要将function引用传递给setTimeout,但我想.playByUrl()的返回值不是函数。所以要么选择

setTimeout(function() {
    player.playByUrl($mp4Link);
},3000);

或使用ES5 .bind()

setTimeout(player.playByUrl.bind(null,$mp4Link),3000);

答案 4 :(得分:0)

player.playByUrl($mp4Link)是返回的值。

setTimeout("player.playByUrl($mp4Link)",3000);

setTimeout(player.playByUrl,3000, $mp4Link);

后者不适用于IE,因此应进行修改。

答案 5 :(得分:-1)

尝试添加player.load();,如下所示:

  player.load();
  setTimeout(function(){ 
    player.setAttribute("src","http://www.w3school.com.cn/example/html5/mov_bbb.mp4");
    player.play();
  },5000)