ゆとり日記

心にゆとりを持って生きたいプログラマーの雑記です。気が向いたら書きます。

JavaScript(jQuery)でHTMLをincludeする

最近流行りのWebデザインテンプレートを見ると大体ついてる「navbar」や「footer」。

テンプレートをDLして、「さあ使うか!」ってなってソースを見てみると
各HTMLにほぼ同じ内容の処理がズラっと書いてあります。

書いてある内容は殆ど変わらないけど、一箇所でも細かい修正があると、
全部のファイルを手動で直さないといけません。

面倒くさい&馬鹿らしい&ケアレスミスが発生する原因になる

ということで「HTMLをincludeして使う方法」を調べた際のメモを記録しておきます。

コードは以下の通りです。

include.html

<p>includeされて使いまわされる部分です/p>

index.html

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <title>includeする側</title>
   <link rel="stylesheet" href="">
</head>
<body>
    <p>下にinclude.htmlからloadされた部分が出る</p>
    <div id="target"></div>
        
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
           $('#target').load('include.html');
        });
    </script>
</body>
</html>

include.htmlに書かれた内容がincludeされた内容。
index.htmlから参照を行い、divタグ内にloadします。

本番ではincludeされた内容がnavbarだったり、footerだったりするわけですが、
コードが長くなって見づらくなるのでここでは簡単に書いています。

以上。今日は進捗が全然だったので明日頑張らないと・・。

追記その1:  

以前似たような事をPHPでやったのですが、今回はJSで実装してみたかったので調べました。
もっと良いやり方があれば、是非ご教授くださいまし(ペコリ。

追記その2:

JSをbodyの手前で読み込む必要が無かったので直した & 言い回しがおかしかった部分を直しました。

追記その3:

Google Chromeではローカルファイルへのアクセスが出来ないようになっているので、
Chromeで上記のコードの動作を確認したい場合はサーバー上で行うようにしてください。