Bootstrap4でHTMLパーツの共有化<ヘッダー、サイド、フッター>

静的HTMLよく使われるjQueryでのHTMLパーツの共通化。インラインフレームよりも便利なのでよく利用します。

インラインフレームはボーダーやスクロール、高さなどいろいろ面倒なので好きではありません。

今回はBootstrapでこのパーツの共有化が必要になり、いろいろ試したんですがBootstrap4で上手く動かない、あれこれ試してみました。

原因はjQueryの読み込み場所とバージョン

Bootstrap4のCDNでは</body>の直前に「最初にjQuery、次にPopper.js、次にBootstrap JS」と読み込みます。

このjQueryを</body>の直前ではなく</head>の前に持って行きます。そしてjQueryのバージョンはBootstrap3のCDNに置き換えます。

Bootstrap4のjQueryバージョンは「v4.1.0時点でjQuery1.9.1以上に対応」ですので「1.11.3」でも大丈夫。

</head>の前に

 

これでBootstrap4でも問題無くHTMLパーツの共有化ができました。

HTMLサンプル

index.html

header.html

side.html

footer.html

※header.htmlのみjQueryバージョン、読み込み位置を変えています。

※読み込みを $("#header-outer").load("header.html");としてページ全体を読み込む設定でもいいんですがBootstrapの場合 $("#header-outer").load("header.html #header-inner");としたほうが共通パーツのイメージが編集しやすい、特にサイドは。

HTMLサンプル

ローカルでの確認はChromeやIEでは上手くいきません、Firefoxならそのままで可能です。

コメント

タイトルとURLをコピーしました