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

タグとインラインJavaScriptにsrc属性を含めて、両方が実行されることを期待することはできません。scriptこれを行うと、src属性のみが実行されます。スクリプトタグの劣化を参照してください。

次のように、それらを別々のタグに分割できます。

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

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

HTMLドキュメントがロードされる前に実行する場合はLoad()、次のように実行できます。

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

<script>
    Load();
</script>

ただし、Load()終了するまでHTMLの解析とレンダリングがブロックされることに注意してください。したがって、Load()時間がかかる場合は、パフォーマンスに悪影響を与える可能性があります。これがリダイレクトスクリプトで問題になる可能性は低いですが、一般的には注意が必要です。

于 2012-07-22T17:36:10.753 に答える