为什么setTimeout会在Chrome中触发两次,而不是IE或Firefox?

时间:2012-07-22 00:52:13

标签: javascript google-chrome

有人可以告诉我为什么javascript函数' GenerateNewNumber' 会在Chrome中触发两次,但不会针对IE或Firefox触发?使用Chrome 20.0.1132.57,IE9和Firefox 13。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="/App_JScript/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" language="javascript">

        $(document).ready(function () {
            $('a#RandomNumber').click(function () { initiateNewNumber(); });
        });

        function initiateNewNumber() {

            setTimeout('GenerateNewNumber();', 3000);
        }

        function GenerateNewNumber() {
            var randomnumber = Math.floor(Math.random() * 1123);
            document.getElementById('RandomNumber').innerHTML += '<br>' + 'Random Number is ' + randomnumber;
        }
    </script>
</head>
<body>
    <a id="RandomNumber" href="#">Click for Random Number</a>
</body>
</html>

我已经通过Stackoverflow进行了搜索,但无法找到任何有用的建议。

提前致谢。

2 个答案:

答案 0 :(得分:1)

setTimeout需要一个函数作为第一个参数:

setTimeout(function() { GenerateNewNumber(); }, 3000);

答案 1 :(得分:1)

试试这个

window.setTimeout(GenerateNewNumber,3000);