【问题标题】:When does a body onLoad gets called?何时调用主体 onLoad?
【发布时间】:2012-10-29 18:08:18
【问题描述】:

我需要了解身体的onload 何时被调用

我在w3school 中看到onload=Script to be run when a document load 这是什么意思?

是不是这个意思

  1. html/jsp 页面在渲染正文中的任何元素之前被加载,如任何table 或 jsp 脚本,例如:<%= request.getParameter("NAME") %>
  2. 还是在页面/正文渲染之后?

例如: 我有一堆参数(<%= request.getParameter("NAME") %>,...),所以为了使用它们,我会将它们放在一些隐藏的表单项中,然后在身体负载时我可以使用它们吗?

【问题讨论】:

  • w3schools 是一个糟糕的资源:@​​987654322@。虽然在这种情况下可能无关紧要,但最好使用适当的参考,例如 mozilla 的 MDN
  • @ThiefMaster:我的工作主要关注Internet Explorer 8,可以参考MDN吗?
  • 通常会提到其他浏览器是否有重要差异。但可以肯定的是,在这种情况下我会检查 MSDN,因为那是 IE 的官方资源。

标签: html jsp


【解决方案1】:

不同于w3schoolsMDN explains when the event is fired

加载事件在文档加载过程结束时触发。至此,文档中的所有对象都在DOM中,所有图片和子帧都加载完毕了。

所以DOM树已经准备好了并且所有的元素都已经加载完毕了。

【讨论】:

  • 致@Sjoerd & ThiefMaster:Sjoerd 说Document.onload may be triggered before the page is rendered or images are loaded. 而你说all of the objects in the document are in the DOM, and all the images and sub-frames have finished loading. 哪个是正确的?
  • @Ricky — 实际引用它所链接的资源的答案是正确的。 :)
  • 页面开始加载后添加的对象呢?例如,假设在 head 标签中我有一个脚本,它创建一个带有外部 url(它计算)的新脚本标签并将其添加到 head。如果脚本是硬编码的,我是否保证总是在 onload 触发之前加载脚本?
【解决方案2】:

onLoad 事件在 dom 树成功完成后触发,例如成功加载正文中的所有元素。

【讨论】:

    【解决方案3】:

    Onload 在 DOM 完全加载时执行。这意味着它在页面结束后执行。 当您想在文档完全加载时执行某些任务时,这很有用。

    您可以通过多种方式做到这一点,但这里的方式很少

    <body onload="YOUR ACTION">
    

    类似于

    <script type="text/javascript>
    window.onload=function(){
       //YOUR ACTION  
    }
    </script>
    

    【讨论】:

    • 它不会在 DOM 加载后立即触发。它会等待许多其他事情(例如要加载的图像)。
    【解决方案4】:

    当 DOM 树准备好时触发onload event。这意味着您页面上的所有元素都可用于脚本。 Document.onload 可能会在页面渲染或图像加载之前触发。

    【讨论】:

    • 图像帧等加载后会触发 window.onload 事件(您链接到的事件)。
    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 2011-06-04
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多