如何延迟在浏览器上触发的onLoad事件?

7

我想延迟触发onLoad事件。 是否有一种方式可以严格使用客户端javascript来延迟此事件?


1
想要推迟实际的onload事件(或窗口加载完成的其他方面)的一个很好的理由是为了测试,以防延迟会对页面上的其他事物产生重大影响。我正好找到了这个问题,就是为了这个原因。 - dlaliberte
想要延迟实际的onload事件的一个很好的原因是为了搜索引擎用于WebAssembly应用程序。 - imike
2个回答

10
如果您将一个 `script` 标签放在 `body` 结尾处,例如:
<body>

  ...

  <script>
    setTimeout(function(){
      //deferred onload
    }, 2000);
  </script>
</body>

在这种情况下,该函数将在2秒后执行。
如我下面的评论所说:您不应该依赖延迟。而是在某个事件上使用回调。如果不可能,可能更好的解决方案是使用setInterval和一个检查每个X毫秒是否存在等待的内容并触发的函数。

4
不行,那个方法不起作用。setTimeout并不能阻止onload事件的触发。 - kay am see
抱歉,可能之前表达不够清楚,请不要再使用onload事件了,而是用这种技巧来延迟代码的启动。 - Mic
1
@Kunal 你不应该依赖延迟,而是在某个事件上使用回调。如果不可能的话,可能更好的办法是使用setInterval函数并隔一段时间检查是否存在你所等待的东西,然后触发相应操作。 - Mic

-9

没有理由延迟onload事件。也许你想使用window.load代替?

$(window).load(function(){
    //your code here
});

9
我想延迟页面加载事件(onload event)。 - kay am see
延迟onLoad事件的原因是什么?在我看来,等待onload然后延迟代码会更好。这里有些东西我没有理解。 - Ryre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接