web-dev-qa-db-ja.com

オンロード前のJavascript?

OnLoad/onPageShowの前にイベントハンドラーはありますか? onLoadの問題は、表示に変更がある場合、ページが完全に読み込まれるまで変更なしで表示され、その後スクリプトが実行されることです。できるだけ早く実行されるようにするための最良の方法は何ですか?

15
NoBugs

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に設定します。
24
Itay Maman