我有一个脚本,在显示隐藏div之前显示秒数。
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 :(得分: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);
}
答案 1 :(得分:1)
您可以在您的正文标记上设置“onload”事件,该事件会在您的内容加载后立即运行:
<body onload='yourFunction()'>
答案 2 :(得分:1)
您不应该直接分配您的onload,它将替换任何现有的onload。 经常使用Onload,因此覆盖它是一个坏主意。执行以下操作:
window.addEventListener ?
window.addEventListener("load",yourFunction,false) :
window.attachEvent && window.attachEvent("onload",yourFunction);
&#13;
如果你能使用像jQuery这样的JS库,它可能会让你更轻松。您可以使用
$(document).ready(function() {
// your code
});
&#13;
参考:https://ckon.wordpress.com/2008/07/25/stop-using-windowonload-in-javascript/
答案 3 :(得分: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 **/
});
我建议您使用加载功能来解决这个问题。祝你有个美好的一天
答案 4 :(得分:0)
如果您使用jQuery,请执行以下操作:
$(function(){
//your code
});
它的代码将在加载页面后运行。