我尝试开发一个页面,我不得不使用setTimeout函数,因为我需要在两秒钟后在我的页面中加载我的视频。Javascript - setTimeout函数
为了做到这一点,我写了这个,
window.onload = function() {
player = new Player('playerObject');
setTimeout(player.playByUrl($mp4Link),3000);
}
,但是这是不工作,为什么?
我尝试开发一个页面,我不得不使用setTimeout函数,因为我需要在两秒钟后在我的页面中加载我的视频。Javascript - setTimeout函数
为了做到这一点,我写了这个,
window.onload = function() {
player = new Player('playerObject');
setTimeout(player.playByUrl($mp4Link),3000);
}
,但是这是不工作,为什么?
使用回叫:
setTimeout(function(){
player.playByUrl($mp4Link);
},3000);
与您此前的说法,代码正在执行立即而setTimeout
(因为你是通过指定PARAM和括号如playByUrl($mp4Link)
直接调用它)需要一个回调。
说出*为什么*并解释OP的原始代码实际上在做什么会更有帮助。 – 2012-03-26 12:56:52
ty。 3000意味着= 3秒? – user1277467 2012-03-26 13:00:20
@ user1277467:是的,你是对的。 – Sarfraz 2012-03-26 13:03:36
您不能将参数添加到该功能。但是,您可以简单地使用anonymuos函数作为回调函数,并在其中调用函数(使用参数)。
window.onload = function() {
player = new Player('playerObject');
setTimeout(function() {
player.playByUrl($mp4Link);
}, 3000);
}
的setTimeout需要一个功能
window.onload = function() {
player = new Player('playerObject');
setTimeout(function(){
player.playByUrl($mp4Link);
},3000);
}
你需要一个function
引用传递到setTimeout
,但我想从.playByUrl()
返回值是不是一个函数。因此,无论用
setTimeout(function() {
player.playByUrl($mp4Link);
},3000);
去或使用ES5 .bind()
setTimeout(player.playByUrl.bind(null,$mp4Link),3000);
player.playByUrl($mp4Link)
是返回值。
尝试
setTimeout("player.playByUrl($mp4Link)",3000);
或
setTimeout(player.playByUrl,3000, $mp4Link);
后者不能与IE浏览器,所以应该进行修改。
的window.onload =函数(){ 播放器=新播放器( 'playerObject'); setTimeout(player。playByUrl($ mp4Link),10000); }这是行不通的原因:( – user1277467 2012-03-26 13:21:19
我已经在上面解释过了,'player.playByUrl($ mp4Link)'是除函数之外的一些值。 – onemach 2012-03-26 13:47:10
尝试添加player.load();
如下:
player.load();
setTimeout(function(){
player.setAttribute("src","http://www.w3school.com.cn/example/html5/mov_bbb.mp4");
player.play();
},5000)
的可能的复制[?我如何调试我的JavaScript代码(http://stackoverflow.com/questions/988363/how-can-i-debug -my-javascript-code) – Liam 2016-06-14 09:57:07