2013-09-13 4 views
-1

Моя проблема заключается в thesame как:JS не работает, даже после использования window.load

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

Я работал над этим в течение более часа теперь ...

+0

У вас на компьютере очевидные ошибки. Сначала исправьте их. 'Uncaught TypeError: функция объекта Number() {[native code]} не имеет метода 'floor'' Я уверен, что вы имели в виду 'Math.floor'. – meagar

+0

Tbh Я не знаю, что это значит, но почему это работает на скрипке? – Art

+0

Число не является объектом в javascript! Вы должны использовать Math.floor :) –

ответ

2

вашей скрипки нагрузок MooTools, но ваша страница не ,

Изменение:

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

в

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

и использовать простые JS.

jsFiddle example

+0

Я видел это, это был какой-то тест, который я сделал, но я уже отредактировал его. Все еще не работает, хотя – Art

+0

@meagar - так верно. обновлено. – j08691

1

Number не имеет никакого способа floor. Используйте Math вместо

Math.floor(time/60); 
0

Ваших jsFiddle грузы MooTools, что расширяет собственный объект Number с методом пола.

Ваш код не работает, поэтому при попытке вызвать Number.floor ваш код запускается с ошибкой. Вместо этого используйте Math.floor.

Ну, и call countDown после того, как он был определен.

+0

обратный отсчет * * определено в верхней части области. Нет ничего плохого в том, чтобы вызывать его на самом верху. – meagar

+0

Истина - если бы она была в том же теге скрипта (как сейчас).Но так как теги скрипта выполняются в порядке появления, а в его исходном коде есть сценарий 1: вызов функции, скриптовый тег 2: определение его - в то время, когда это был правильный совет :) – hagbard

+0

Вызов и определение всегда * были тот же самый тег скрипта, начиная с оригинальной версии. Его код содержит только один тег сценария. – meagar

Смежные вопросы