在body标签之前调用Javascript函数

时间:2012-07-22 17:32:34

标签: javascript html

我在名为cookieRedirect.js的外部文件中有Load()函数,我想在tag之前加载该函数。 我曾经像这样加载它:

<script type="text/javascript" src="cookieRedirect.js"></script>
</head>
<body onload=Load();>

但是当我尝试这个时它不起作用:

<script type="text/javascript" src="cookieRedirect.js">
window.onload=Load();
</script>
</head>
<body>

2 个答案:

答案 0 :(得分:4)

如果要在页面加载之前加载该功能,只需将脚本代码添加到页面的<head>,而不是正文中。 window.onloadonload=""只会在加载页面时执行您的代码,而不是之前。

这样做:

<html>
  <head>
    <script src="cookieRedirect.js"></script>
    <script>
      Load();
    </script>
  <head>
  <body>
  </body>
</html>

答案 1 :(得分:0)

您不能在src代码和内联JavaScript中包含script属性,并希望它们都能执行。如果您这样做,只会执行src属性。见http://ejohn.org/blog/degrading-script-tags/

您可以将它们拆分为单独的标记,如下所示:

<script src="cookieRedirect.js">
</script>

<script>
    window.onload='Load';
</script>

如果您希望在加载HTML文档之前执行Load(),则可以执行以下操作:

<script src="cookieRedirect.js">
</script>

<script>
    Load();
</script>

但请注意,它将阻止解析和呈现HTML,直到Load()完成。因此,如果Load()可能需要一些时间,那么这可能会对性能产生负面影响。对于重定向脚本,这不太可能是一个问题,但一般要记住这一点。