動的スクリプトと同様に、いわゆる動的スタイルは、ページが最初に読み込まれた時点では存在しないスタイルを指します。動的スタイルは、ページが読み込まれた後にページに動的に追加されます。 次の典型的な 要素を例に挙げてみましょう。この要素は、DOM コードを使用して動的に簡単に作成できます: コードをコピー コードは次のとおりです: var link = document.createElement("link"); link.rel = "stylesheet"; link.type = "text/css"; ; var head = document.getElementsByTagName("head")[0]; head.appendChild(link); 上記のコードはすべての主要なブラウザで正常に実行できます。すべてのブラウザで一貫した動作を保証するには、 要素を 要素に追加する必要があることに注意してください。プロセス全体は次の関数で表すことができます: コードをコピー コードは次のとおりです: 関数loadStyles( url) { var link = document.createElement("link"); link.rel = "stylesheet"; link.href = url ; var head = document.getElementsByTagName("head")[0]; head.appendChild(link); loadStyles("style.css"); 🎜> 外部スタイル ファイルの読み込みプロセスは非同期です。つまり、スタイルの読み込みと JavaScript コードの実行のプロセスに固定された順序はありません。 スタイルを定義するもう 1 つの方法は、次のように 要素を使用して CSS を組み込むことです。 </div> 同じロジックに従って、次の DOM コードが有効になります: コードをコピー コードは次のとおりです。 var style = document.createElement("style"); style.type = "text/css"; style.appendChild( document .createTextNode("body{background-color:red;}")); var head = document.getElementsByTagName("head")[0]; head.appendChild(style); 🎜 > 上記のコードは Firefox、Safari、Chrome、Opera で実行できますが、IE ではエラーが報告されます。 IE は を <script> と同様の特別なノードとして扱い、その子ノードへのアクセスを許可しません。実際、この時点で IE がスローするエラーは、子ノードを <script> 要素に追加するときにスローされるエラーと同じです。 IE でのこの問題の解決策は、次の例に示すように、要素の styleSheet 属性にアクセスすることです。この属性には、CSS コードを受け入れる cssText 属性があります。 <div class="codebody" id="code62505"> <br><br><br><br>Copy code<br><br> </div> コードは次のとおりです。<br><br> <div class="codetitle">var style = document.createElement("style"); <span>style.type = "text/css"; <a style="CURSOR: pointer" data="2026" class="copybut" id="copybut2026" onclick="doCopy('code2026')">try { <u>style.appendChild(document.createTextNode("body{background-color:red}")); </u>} catch (ex) { </a>style.styleSheet.cssText = "body{背景 -color:red}"; </span>} </div>var head = document.getElementsByTagName("head")[0]; <div class="codebody" id="code2026">head.appendChild(style); <br><br> <br>withダイナミクス 埋め込みスクリプトの追加と同様に、書き換えられたコードは try-catch ステートメントを使用して IE によってスローされたエラーをキャッチし、IE 用の特別なメソッドを使用してスタイルを設定します。一般的な解決策は次のとおりです。 <br><br><br><br><br>コードをコピー<br><br> </div> コードは次のとおりです。 <br><br> <div class="codetitle">function loadStyleString (css) { <span>var style = document.createElement("style"); <a style="CURSOR: pointer" data="83463" class="copybut" id="copybut83463" onclick="doCopy('code83463')">style.type = "text/css"; <u>style.appendChild(document.createTextNode(css)) ); </u>} catch (ex) { </a>style.styleSheet.cssText = css; </span>var head = document.getElementsByTagName("head")[0]; (スタイル) ; </div>} <div class="codebody" id="code83463">loadStyleString("body{背景色:赤}");</div>