場合によっては、Web ページ内の特定の div が読み込まれた後に JavaScript を動的に導入する必要があることがあります。IE での解決策は次のとおりです。
引用した内容は以下の通りです。 コード: newjs.onreadystatechange = 関数 () { if (newjs.readyState == 'loaded' ) { // 準備ができて! } } newjs.onload = 関数 () { // 準備ができて! } |
主に onload および onreadystatechange イベントが使用されます。これを利用して、外部CSSを動的に読み込むこともできます。以下はIe/Firefox両方に適した書き方です。
引用した内容は以下の通りです。 コード: var css; 関数 include_css (css_file) { var html_doc = ドキュメント.getElementsByTagName ( 'head' ) [ 0 ]; css = document.createElement ( 'link' ); css.setAttribute ('rel', 'stylesheet' ); css.setAttribute ( 'type', 'text/css' ); css.setAttribute('href', css_file); html_doc.appendChild(css); // アラート状態の変化 css.onreadystatechange = 関数 () { if (css.readyState == 'complete' ) { アラート ( 'CSS onreadystatechange fired' ); } } css.onload = 関数 () { アラート ( 'CSS オンロードが起動されました' ); } false を返します。 } var js; 関数 include_js (ファイル) { var html_doc = ドキュメント.getElementsByTagName ( 'head' ) [ 0 ]; js = document.createElement ( 'script' ); js.setAttribute ('type', 'text/javascript' ); js.setAttribute ('src', ファイル); html_doc.appendChild(js); js.onreadystatechange = 関数 () { if (js.readyState == 'complete' ) { アラート ( 'JS onreadystate が起動されました' ); } } js.onload = 関数 () { アラート ( 'JS オンロードが起動されました' ); } false を返します。 } |