2015-04-20 4 views
-3

У меня есть сценарий, который отображает секунды перед отображением скрытия div.Javascript Start setinterval после загрузки страницы

var seconds_left = 20; 
var interval = setInterval(function() { 
    document.getElementById('timer_div').innerHTML = "Or wait " + --seconds_left + " seconds to play the video."; 
    if (seconds_left <= 0) 
    { 
    //alert('The video is ready to play.'); 
     $('#def').fadeOut('slow'); 
     clearInterval(interval); 
    } 
}, 1000); 

Проблема в том, что даже страница не загружена полностью, автоматически начинается подсчет.

Что я могу сделать, чтобы начать подсчет после полной загрузки страницы?

ответ

1

Попробуйте вызвать его в window.onload = function() { alert("It's loaded!") }

Пример

window.onload = function() { 
    someFunction(); 
} 


function someFunction() { 
    var seconds_left = 20; 
    var interval = setInterval(function() { 
     document.getElementById('timer_div').innerHTML = "Or wait " + --seconds_left + " seconds to play the video."; 
     if (seconds_left <= 0) { 
      //alert('The video is ready to play.'); 
      $('#def').fadeOut('slow'); 
      clearInterval(interval); 
     } 
    }, 1000); 
} 
+0

Это просто так, что вы не сидите с раздутым кодом внутри метода onload – R4nc1d

+0

ах я вижу, что вы говорите, моя ошибка, я думаю, я скопировал ее странно – R4nc1d

+0

теперь это выглядит хорошо, удалил мой комментарий;) – Wh1T3h4Ck5

1

вы можете установить «OnLoad» событие на вашем теле тега, который работает, как только ваш контент заканчивается загрузка:

<body onload='yourFunction()'> 
1

Вы не должны напрямую назначать свою нагрузку, она заменяет любую существующую нагрузку. Onload используется часто, поэтому переопределение это плохая идея. ли что-то вроде этого:

window.addEventListener ? 
 
window.addEventListener("load",yourFunction,false) : 
 
window.attachEvent && window.attachEvent("onload",yourFunction);

Если вы можете использовать библиотеку JS, как JQuery это будет, вероятно, сделать вещи проще для вас. Вы можете использовать

$(document).ready(function() { 
 
    // your code 
 
});

Ref: https://ckon.wordpress.com/2008/07/25/stop-using-windowonload-in-javascript/

0

Вот это лучший способ, если вы действительно хотите, чтобы убедиться, что страница полностью загружена:

$(function() { 
    // work when all HTML loaded except images and DOM is ready 
}); 

$(window).load(function() { 
    // this is come when complete page is fully loaded, including all 
    // frames, objects and images **/ 
}); 

Используйте функцию нагрузки для эту проблему я предлагаю вам. Иметь хороший день

0

Если вы используете JQuery сделать так:

$(function(){ 
    //your code 
}); 

И это код будет работать после того, когда страница загружена.

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