2016-09-11 7 views
0

Firefox上でsetTimeout()という問題が発生しましたが、誰もがそれを持っていれば大きな問題になるようですが、私はそれを検索するときは何も言及していません...だから、これはどういうわけかローカルに起こります。FirefoxがsetTimeout()の追加引数を無視するのはなぜですか?

問題は非常に明確にthis W3Schools TryIt pageで示されています。後世のために、コードは以下のとおりである:私はクローム(現在Version 53.0.2785.101 m (64-bit)でこれを行うと、それが動作

<!DOCTYPE html> 
<html> 
<body> 

<p>Click the Start button to output "Hello" after 2 seconds.</p> 

<p>In this example, we also output the parameters that were passed to the alertFunc() function (does not work in IE9 and earlier).</p> 

<button onclick="myStartFunction()">Start</button> 

<p id="demo"></p> 

<p id="demo2" style="color:red;"></p> 

<script> 
var myVar; 

function myStartFunction() { 
    myVar = setTimeout(alertFunc, 2000, "First parameter", "Second parameter"); 
} 

function alertFunc(param1, param2) { 
    document.getElementById("demo").innerHTML += "Hello "; 

    document.getElementById("demo2").innerHTML = "Parameters passed to alertFunc(): <br>" 
    + param1 + "<br>" + param2 + "<br>"; 
} 
</script> 

</body> 
</html> 

私は、Firefox(現在48.0.2)でそれを行うと、それが失敗した(両方のパラメータ値はundefinedとして出てきます。。)

+0

はここにFirefoxで正常に動作します - W3Schoolsのサイトは '言うalertFunc()に渡されたパラメータ: 最初のパラメータ 秒パラメータ ' - それはあなたが得るものではありませんか? –

+1

問題を再現できません:http://imgur.com/a/f4k7J – Quentin

+0

'setTimeout(console.log.bind(コンソール)、1000、" hello "、" world ")'が動作します – vlaz

答えて

0

はそれを見つけたRightToClick)は、余分なパラメータを受け付けない(独自のバージョンでのsetTimeoutをオーバーライドしているが判明

関連する問題