onload之前的Javascript?

时间:2011-08-21 06:03:18

标签: javascript onload

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

2 个答案:

答案 0 :(得分: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>

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

底线:可能,不推荐。

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

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

答案 1 :(得分:-1)

简单的答案是将DOM元素放在页面正文中的脚本标记内。我有这个问题使用JavaScript函数来设置我的导航菜单链接,但是我有一个谷歌地图元素导致页面加载缓慢。在这个特殊的页面上,我在链接之后运行了脚本。这是一个解决方案,可能不是最好的,但它的工作原理。希望这会有所帮助。