Javascript-setTimeout函数
我尝试开发一个页面,我必须使用setTimeout函数,因为我需要在两秒钟后在页面中加载视频 为了做到这一点,我写了这个Javascript-setTimeout函数,javascript,Javascript,我尝试开发一个页面,我必须使用setTimeout函数,因为我需要在两秒钟后在页面中加载视频 为了做到这一点,我写了这个 window.onload = function () { player = new Player('playerObject'); setTimeout(player.playByUrl($mp4Link),3000); } 但这不起作用为什么 使用回调: setTimeout(function(){ player.play
window.onload = function () {
player = new Player('playerObject');
setTimeout(player.playByUrl($mp4Link),3000);
}
但这不起作用为什么 使用回调:
setTimeout(function(){
player.playByUrl($mp4Link);
},3000);
在前面的语句中,代码立即执行(因为您是通过指定param和括号直接调用它的,例如
playByUrl($mp4Link)
),而setTimeout
需要回调。无法向函数添加参数。但是,您可以简单地使用anonymuos函数作为回调函数,并调用其中的函数(使用参数)
setTimeout需要一个函数
window.onload = function () {
player = new Player('playerObject');
setTimeout(function(){
player.playByUrl($mp4Link);
},3000);
}
您需要将
函数
引用传递给设置超时
,但我猜.playByUrl()
的返回值不是函数。所以要么去
setTimeout(function() {
player.playByUrl($mp4Link);
},3000);
或者使用ES5.bind()
player.playByUrl($mp4Link)
是返回值
试一试
setTimeout(“player.playByUrl($mp4Link)”,3000代码>
或
setTimeout(player.playByUrl,3000,$mp4Link)代码>
后者不适用于IE,因此应进行修改。尝试添加player.load()代码>如下所示:
player.load();
setTimeout(function(){
player.setAttribute("src","http://www.w3school.com.cn/example/html5/mov_bbb.mp4");
player.play();
},5000)
说明原因并解释OP的原始代码实际上在做什么会更有帮助。@user1277467:是的,你是对的。Player.prototype.playByUrl=function(url){this.object.data=url;return this.play();}这是我调用的函数,而不是work window.onload=function(){Player=new Player('playerObject');setTimeout(player.playByUrl.bind(null,$mp4Link),3000);}whywindow.onload=function(){player=new player('playerObject');setTimeout(player.playByUrl($mp4Link),10000);}这不起作用的原因:(我已经在上面解释过了。player.playByUrl($mp4Link)
是函数以外的某个值。可能与
setTimeout(player.playByUrl.bind(null,$mp4Link),3000);
player.load();
setTimeout(function(){
player.setAttribute("src","http://www.w3school.com.cn/example/html5/mov_bbb.mp4");
player.play();
},5000)