我嘗試開發一個頁面,我不得不使用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