JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

IE8でAJAX挿入されたHTML5要素を有効にする方法|html5shivの使い方を解説

IE8でHTML5要素を有効にするにはhtml5shivが必要

Internet Explorer(特にIE6〜IE9)は、sectionarticlenavといったHTML5の新しいセクショニング要素を認識できません。そのため、これらの要素をマークアップに使ってもCSSが正しく適用されず、レイアウトが崩れる原因となります。

この問題を解決するのが「html5shiv」というJavaScriptライブラリです。html5shivを読み込むことで、レガシーなInternet ExplorerでもHTML5のセクショニング要素が使用可能になり、IE6〜IE9向けの基本的なスタイリングも行えるようになります。

html5shivの読み込み方法

条件付きコメントを利用すると、IE9未満のブラウザにのみhtml5shivを読み込ませることができます。

<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->

AJAXで挿入された要素への対応

AJAX呼び出しによってページ読み込み後にDOMへ追加されたHTML5要素についても、html5shivは自動的に処理します。これは、html5shivがdocument.createElementを拡張(パッチ)しており、動的に生成されるHTML5要素にもスタイルを適用できる仕組みになっているためです。そのため、AJAXでHTML5要素を挿入する場合でも、特別な追加処理なしにhtml5shivの恩恵を受けられます。

document.createElementでカスタム要素を作成する例

html5shivに頼らずとも、document.createElementを使って独自の要素を明示的に生成すれば、IEにその要素を認識させることができます。

var demo = document.createElement("demo");

demo.innerHTML = "Working!";
document.body.appendChild(demo);

このコードでは、「demo」というカスタム要素を作成し、テキストを設定した上でドキュメントに追加しています。IEは未知の要素に対してCSSを適用しないため、createElementで要素を明示的に生成することで、スタイリングの対象として認識させられるのです。

まとめ

  • IE8などのレガシーIEでHTML5要素を使うにはhtml5shivを読み込むのが最も簡単です。
  • AJAXで動的に挿入されたHTML5要素も、html5shivが自動的に処理します。
  • 個別の対応が必要な場合は、document.createElementで要素を生成してIEに認識させる方法もあります。
  1. HTML5 SVGで星形を描画する方法をわかりやすく解説

    SVG(Scalable Vector Graphics:スケーラブル・ベクター・グラフィックス)は、XML形式で2Dグラフィックや図形アプリケーションを記述するための言語です。記述されたXMLはSVGビューアによって描画されます。現在の主要なWebブラウザのほとんどは、PNGやGIF、JPGなどの画像形式と同じようにSVGを表示できます。polygon要素を使った多角形の描画HTMLのSVGで多角形を描くには、<polygon>要素を使用します。この要素は、3つ以上の辺を持つ図形を作成できます。HTML5 SVGで星形を描く場合は、各頂点のx座標とy座標を適切に設定することがポイ

  2. HTML5 SVGで線を引く方法を解説!line要素の基本とサンプルコード

    SVG(Scalable Vector Graphics/スケーラブル・ベクター・グラフィックス)は、XML形式で2Dグラフィックスや図形を記述するための言語です。記述されたXMLは、SVGビューアによって描画(レンダリング)されます。現在、主要なWebブラウザの多くは、PNGやGIF、JPGといった画像形式を表示できるのと同じように、SVGも問題なく表示できます。 HTML5 SVGで線を描くには「<line>」要素を使用する HTML5のSVGで直線を引く場合は、SVGの<line>要素を使います。<line>要素では、線の始点と終点の座標を指定し、スタ