2

我在一个名为cookieRedirect.js的外部文件中有 Load() 函数,我想在 <body> 标记之前加载该函数。

我曾经这样加载它:

    <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>
4

2 回答 2

4

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

这样做:

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

  <body>
  </body>
</html>
于 2012-07-22T17:35:09.817 回答
1

您不能src在标签和内联 JavaScript 中包含属性script并期望它们都执行。如果你这样做,src只会执行该属性。请参阅降级脚本标记

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

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

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

如果要Load()在加载 HTML 文档之前执行,可以这样做:

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

<script>
    Load();
</script>

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

于 2012-07-22T17:36:10.753 回答