JavaScript 挿入スタイルは、フロントエンド開発、特にフロントエンドのパフォーマンスやページ スキニングを変更する場合に広く使用されています。私が最近行ったタスクは、ユーザーが他の人のサイトのボタンをクリックすると、他のサイトのページにスクリプトが挿入されて実行されるというものでした。これにはスタイルの挿入も含まれます。 一般に、JavaScript の動的挿入スタイルには 2 つのタイプがあります。1 つは の タグを使用して外部スタイルを導入する方法です。ページに外部スタイル ファイルを導入するには、 タグを使用します (これは style 属性ではありません)。 <br><strong>1. ページに外部スタイルを導入します。 </strong> <br><br> </p> <div class="codetitle"> <span> <a style="CURSOR: pointer" data="73662" class="copybut" id="copybut73662" onclick="doCopy('code73662')"> <u> </u> </a> </span> </div> <div class="codebody" id="code73662"> 外部スタイル ファイルを導入するには、比較的単純です。性的な問題: <br><br><br><br><br>コードをコピーします <br><br><br> コードは次のとおりです: <br> </div> <br>function includeLinkStyle( url) { <br> var link = document.createElement("link"); <strong>link.rel = "stylesheet"; <br>link.type = "text/css"; ; </strong>ドキュメント.getElementsByTagName("head")[0].appendChild(link); <br>includeLinkStyle("http://css.jb51.net/home/css/reset.css?v) =20101227"); <div class="codetitle"> <span> <a style="CURSOR: pointer" data="65377" class="copybut" id="copybut65377" onclick="doCopy('code65377')">しかし、現在取り組んでいるプロジェクトでは、適用されているスタイルがほとんどありません。外部スタイル ファイルを直接導入するのは適切ではないと思われるため、2 番目のオプションを選択しました。 < style> タグを使用すると、ページ スタイルが挿入されます。 <u></u>2. <style> タグを使用してページ スタイルを挿入します。</a></span>このメソッドには、Firefox などのさまざまな標準ブラウザーでは、styleSheet を設定する cssText を直接取得できません。 .value、標準ブラウザでは、document.styleSheets[0].cssRules[0].cssText を使用してスタイルを同時に取得できます。document.styleSheets[0].cssRules[0].cssText= を使用します。 newcssText; ページは自動的に更新されません。スタイルについては、 document.styleSheets[0].cssRules[0].style.cssText=newcssText; を使用する必要があります。 YUI では、次のような優れたメソッドが使用されます。コードをコピーします</div> <div class="codebody" id="code65377"> <br> コードは次のとおりです。<br><br> <br>function includeStyleElement(styles,styleId) { <br>if (document.getElementById(styleId)) { <br> return <br>} <br>var style = document.createElement("style"); <br>style.id = styleId; <br>//ここで ie に次の属性を設定するのが最適です <br>/* if (isIE ()) { <br>style.type = "text/css"; <br>style.media = "screen" <br>}*/ <br>(document.getElementsByTagName("head")[0 ] || document.body).appendChild(style); <br>if (style.styleSheet) { //for ie <br>style.styleSheet.cssText = <br>} else {//for w3c <br>style.appendChild(document.createTextNode(styles)); <br>} <br>} </div>varstyles = "#div{背景色: #FF3300; color:#FFFFFF }"; styles," newstyle"); <br><br> <br>このようにして、要素がスクリプトを通じて追加されたかどうかに関係なく、スタイルをページ上の要素に直接適用できます。 <br>手の安さについて: <div class="codetitle">このコードを見てください: <span><a style="CURSOR: pointer" data="43350" class="copybut" id="copybut43350" onclick="doCopy('code43350')"><u></u></a>コードをコピーします</span> </div> <div class="codebody" id="code43350"> コードは次のとおりです: <br><br> <br>var divObj = document.createElement("div"); <br>divObj .id = "__div"; <br>divObj .innerHTML="DOM とスタイルを挿入するための js をテストします"; document.body.appendChild (divObj ); <br>varstyles = "#__div{background-color: #FF3300; color:#FFFFFF }"; <br>includeStyleElement(styles,"newstyle"); > </div>front このプロジェクトで述べたように、ユーザーが他のサイトのボタンをクリックすると、一意性を確保するために、他のサイトのページにスクリプトが挿入されて実行されます。可能な限り私が作成した要素 ID の中で、競合を避けるために、要素 ID の前に非公開を示す「__」を手作業で追加しました。結果は悲劇的です。IE6 と IE7 のクラス名と ID はアンダースコア ("_") で始めることができません。これを忘れていました。原因を調べるのに2時間もかかりました。何という悲劇でしょう!結論を出してください!