我在MSIE以下的javascript:的setTimeout的Internet Explorer
setTimeout(myFunction, 1000, param);
這似乎在所有瀏覽器的工作,除了IE瀏覽器。該參數不會被轉發給該函數。看着調試器,它是未定義的。
我在MSIE以下的javascript:的setTimeout的Internet Explorer
setTimeout(myFunction, 1000, param);
這似乎在所有瀏覽器的工作,除了IE瀏覽器。該參數不會被轉發給該函數。看着調試器,它是未定義的。
param
在Internet Explorer中指定myFunction
代碼是否是JScript中,JavaScript或VBScript還參見:MSDN。它不像其他瀏覽器。
下面的工作:
setTimeout(function() {
myFunction(param);
}, 1000);
前面的線並不完全模仿setTimeout
在Firefox等。要通過更高版本的更新到param
變量,利用傳遞變量,未受影響:
setTimeout((function(param) {
return function() {
myFunction(param);
};
})(param) , 1000);
Internet Explorer不允許您傳遞那樣的參數。你必須從回調函數明確地做到這一點:
setTimeout(function(){
myFunction(param);
}, 1000);
報價從MDN:
注意,通過附加參數傳遞給函數在第一語法不上網工作資源管理器。
這不是一個參數。顯然,最後一個參數是表示腳本語言。
使用匿名函數:
setTimeout(function() {
myFunction(param);
}, 1000);
可以使用匿名函數:
setTimeout(function() { myFunction(param) }, 1000);
如何:
setTimeout(function(){
myFunction(param);
}, 1000);
您可以使用封閉:
setTimeout(function(){myFunction(param)}, 1000);
看看http://www.makemineatriple.com/2007/10/passing-parameters-to-a-function-called-with-settimeout
看起來你需要的是這樣的:
setTimeout(function(){ myFunction(param) }, 1000);
只需使用匿名函數... – 2012-03-05 14:40:21