jsHTMLでのロード実行順序
1. ロード順序: タグの出現順序を紹介します。
ページ上のJavascriptコードはHTMLドキュメントの一部です。ページがロードされるときの実行順序は、導入されたタグ 内の外部 JS が実行される順序です。ステートメントが表示され、実行される順序。このプロセスはドキュメントのロードの一部です。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题 3</title> <script> alert("1-最先执行"); </script> </head> <body onload="alert('3-最后执行');"> <script> alert("2-接着执行"); </script> </body> </html>
で定義されたグローバル 変数 および 関数 は、後で実行されるスクリプトから呼び出すことができます。
変数への呼び出しは事前に宣言されている必要があります。宣言されていない場合、取得される変数値は未定義になります。<script type="text/javscrpt">//<![CDATA[ alert(tmp); //输出 undefined var tmp = 1; alert(tmp); //输出 1//]]> </script>
<script type="text/javscrpt">//<![CDATA[ aa(); //浏览器报错//]]> </script> <script type="text/javscrpt">//<![CDATA[ aa(); //输出 1 function aa() { alert(1); }//]]> </script>
document
.write() は、スクリプトドキュメントの場所に出力を書き込みます。ブラウザは、documemt.write() が配置されているドキュメントのコンテンツを解析した後、コンテンツの解析を続けます。 document.write() による出力 その後、HTML ドキュメントの解析を続けます。
<script type="text/javascript">//<![CDATA[ document.write('<script type="text/javascript" src="test.js"><//script>'); document.write('<script type="text/javascript">'); document.write('alert(2);') document.write('alert("我是" + tmpStr);'); document.write('<//script>'); //]]> </script> <script type="text/javascript">//<![CDATA[ alert(3); //]]> </script>
test.js的内容是: var tmpStr = 1; alert(tmpStr);
IE のポップアップ値の順序は: 2、1、3、ブラウザはエラーを報告します: tmpStr は未定義です
その理由は、IE が document.write を実行しているときに、次の行を実行する前に SRC の Javascript コードがロードされるのを待たずに、最初に 2 がポップアップするためである可能性があります。
document.write('document.write("I am" + tmpStr)') を実行します。 tmpStr を呼び出すと、tmpStr が定義されていないため、エラーが報告されます。この問題を解決するには、HTML 解析を使用して
HTML タグ
を解析し、次の原則を実装してコードを分割して実現します: