即使在使用window.load之后JS也无法工作

时间:2013-09-13 14:10:49

标签: javascript

我的问题如下:

Very simple javascript doesn't work at all

但在我的情况下,答案没有帮助。

在JS小提琴中它确实有效,但是当我复制JS小提琴结果框架的源代码时,它不再起作用了(在我的服务器/计算机上)。

我的代码(简化):

<!DOCTYPE html>
<html>
<head>
    <title>Stack Overflow</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
    <p id="countdown2"></p>

    <script>

    function countdown(element, minutes, seconds) {
    var time = minutes*60 + seconds;
    var interval = setInterval(function() {
        var el = document.getElementById("countdown2");
        if(time == 0) {
            el.innerHTML = "countdown's over!";    
            clearInterval(interval);
            return;
        }
        var minutes = Number.floor( time / 60 );
        if (minutes < 10) minutes = "0" + minutes;
        var seconds = time % 60;
        if (seconds < 10) seconds = "0" + seconds; 
        var text = minutes + ':' + seconds;
        el.innerHTML = text;
        time--;
    }, 1000);
    }
    countdown("countdown2", 9, 23);

    </script>
</body>
</html>

在这个JS小提琴中,它有效。 http://jsfiddle.net/Apnu2/374/

我简化的在线页面:

http://biefstuk.org/mc/faal.html

我现在已经工作了一个多小时......

3 个答案:

答案 0 :(得分:2)

你的小提琴加载了MooTools,但你的页面没有。

变化:

var minutes = Number.floor( time / 60 );

var minutes = Math.floor( time / 60 );

并使用普通JS。

<强> jsFiddle example

答案 1 :(得分:1)

Number没有方法floor。请改用Math

Math.floor( time / 60 );

答案 2 :(得分:0)

您的jsFiddle加载MooTools,它使用floor方法扩展本机Number对象。

您的代码没有,因此您的代码在尝试调用Number.floor时会遇到错误。请改用Math.floor。

好吧,并在定义后调用countDown。