onload之前的Javascript?

NoB*_*ugs 14 javascript onload

在onLoad/onPageShow之前是否有任何事件处理程序?onLoad的问题是如果显示有任何变化,页面将在完全加载之前显示而不会发生变化,然后脚本将运行.确保它尽快运行的最佳方法是什么?

Ita*_*man 24

如果您将Javascript 语句(而不是函数定义)放在<script>标记内,它们将在页面加载期间执行 - 在触发onLoad事件之前.

 <html>
 <body>
   <h2>First header</h2>
   <script type="text/javascript">
     alert("Hi, I am here"); 
     document.write("<h3>This is Javascript generated</h3>");
   </script>
   <h2>Second header</h2>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

需要注意的是,您无法按ID搜索元素,因为这些元素可能尚未呈现,因此您以此方式更改页面的能力有限.

底线:可能,不推荐.

我在这种情况下通常做的如下:

  • 使页面中可能变化的部分不可见(通过style="visibility:hidden;");
  • 使onLoad运行一个更改页面的Javascript代码,然后将所述部分的可见性设置为visibility:visible.

  • 您还可以使用DOMContentloaded事件,该事件在DOM已完全加载但不是所有媒体时触发.OnLoad仅在加载所有媒体后触发. (2认同)