Javascript 等待页面完成加载&;然后随机等待显示DIV

Javascript 等待页面完成加载&;然后随机等待显示DIV,javascript,Javascript,我想显示我的用户弹出式新闻稿注册表格。我想使用Javascript来等待页面加载完成,并在随机等待(至少10秒!)后读取,以显示div。如果可能的话,还有另一个小小的改进?(只有在添加onmouse单击隐藏div不太困难的情况下?) 非常感谢 更新使其在10秒后等待并加载。需要添加随机等待 <body onLoad='setTimeout("showIt()", 10000);'> <body onLoad='setTimeout("showIt()", 10000);

我想显示我的用户弹出式新闻稿注册表格。我想使用Javascript来等待页面加载完成,并在随机等待(至少10秒!)后读取,以显示div。如果可能的话,还有另一个小小的改进?(只有在添加onmouse单击隐藏div不太困难的情况下?)

非常感谢

更新使其在10秒后等待并加载。需要添加随机等待

<body onLoad='setTimeout("showIt()", 10000);'>
    <body onLoad='setTimeout("showIt()", 10000);'>

    <script type="text/javascript">
        function showIt() {
          document.getElementById("myDiv").style.display = "block";
        }
    // 1000 = 1 sec | 60000 is 1 minute
        </script>

函数showIt(){
document.getElementById(“myDiv”).style.display=“block”;
}
//1000=1秒| 60000等于1分钟
我认为这会起作用:


函数showIt(){
document.getElementById(“myDiv”).style.display=“block”;
setTimeout(closeIt,10000);
}
函数closeIt(){
document.getElementById(“myDiv”).style.display=“无”;
}
编辑:


编辑:


if(window.addEventListener){
addEventListener('load',回调,false);
}else if(窗口附件){
attachEvent('onload',回调);
}
函数回调(){
setTimeout(showIt,(parseInt(Math.random()*(60000-10000))+10000));
}

欢迎来到堆栈溢出。与其简单地提供代码来解决您的问题,我们更希望您展示自己解决问题的尝试,并且我们可以引导您朝着正确的方向前进。(TLDR:)您是否使用任何第三方javascript框架?因为有很多代码是空闲的(连接事件等)。基本上,您要做的是将事件挂接到dom的加载事件(在jquery中是“ready”),在其他框架中还有其他技术。然后设置超时,并为时间段设置一个(Math.random()*20000+10000)。时间以毫秒为单位,我计算的最小值为10秒,附加范围为20秒,因此10+20=最大30秒。@daniel.gindi你能帮我设置我想添加到函数中的超时吗?这正是你说的我需要10-60秒(最小10秒)你的问题是什么?您已经成功执行了
showIt()
,或者该函数甚至没有被调用,或者div.style.display有问题?@tanmaykhandelwal它现在可以工作了,只剩下随机等待+一些函数在单击时关闭它。我喜欢closeIt函数这是我需要的是,但不使用setTimeout,需要根据单击来执行:)完美我将尝试使用以下代码报告另一件我称之为showit的事情:我想将10000(10秒)更改为10-60秒(至少10秒)的随机值。你知道如何添加它吗?window.addeventlistener的意思是什么?应该行吗?是的,应该行。但以这种方式添加事件侦听器是一种很好的做法,因为使用
onload=function(){}
window.onload限制为只有一个侦听器。假设将来,您想向
窗口添加另一个侦听器。onload
,您将无法使用您的方法进行此操作。因此,最好添加另一个侦听器,而不是直接使用
onload='function(){}'
。为了使页面跨浏览器兼容,您应该同时使用addEventListener和attachEvent。IE支持attachEvent,其他浏览器支持addEventListener。
<script type="text/javascript">
    function showIt() {
      document.getElementById("myDiv").style.display = "block";

      setTimeout(closeIt, 10000);
    }

    function closeIt(){
       document.getElementById("myDiv").style.display = "none";
    }
</script>
<div id='myDiv' onclick='closeIt()'></div>
<script>
    if (window.addEventListener) {
        window.addEventListener('load', callback, false);
    } else if (window.attachEvent) {
        window.attachEvent('onload', callback);
    }

    function callback(){
        setTimeout(showIt, (parseInt(Math.random()*(60000 - 10000)) + 10000));
    }
</script>