- ベストアンサー
HTMLのヘッダ-(フッター)共通化で困っています
- HTMLとJavascript初心者の方が、ある元のHTMLのヘッダー部分を共通化しようとしています。しかし、phpやSSIといった技術を使わずに共通化する方法を探しています。
- ビュー機能内では正常に表示されるが、ブラウザで見るとうまく読み込まれない問題が発生しています。いくつかのサイトで提案された方法を試しましたが、うまくいかず困っています。
- 質問者はC言語を勉強しているプログラマーであり、同じような問題に直面している方や解決策を知っている方からの助言を求めています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
基本的にそのような目的にjavascriptは決して使いません。ヘッダー部分は、検索エンジンが最初に解釈する部分ですが、検索エンジンはjavascriptなんて理解しません。検索エンジンどころかjavascriptでドキュメントの書き換えを禁止しているユーザーや、そもそもjavascriptを解釈しないユーザーエージェントには無意味です。 高機能なテキストエディタで、一挙に書き換えるほうが断然早いし簡単です。 /^\t<div class="header">.*$\t<\/div>/$header/s; とか・・・・・もちろんPerlを使っても良い。 もちろん、一番簡単なのはサーバー側で書き換えることですが・・phpもSSIも使わず、簡単なCGIだけで・・ .htaccess AddType application/x-httpd-cgi html; とでもして html は単純なCGIで内容は open FILE,$ENV{'PATH_INFO'}; while(<FILE>){ s/__HEADER__/$header; s/__FOOTER__/$footer; print; } とか・・・
その他の回答 (3)
- flyingbee
- ベストアンサー率26% (49/182)
JAVAScriptのDocument.writeでタグを書き出してくれます。 例えば document.write('<p>あいうえお</p>'); これをヘッダ部にやればいけるかもしれませんが、たぶんダメでしょう。 理由はヘッダ部のJAVAScriptは多分、定義だけで実行しないのではないでしょうか。 それとヘッダ部が厳しい理由にもう1つ、遅延が挙げられます。 ヘッダ部が<head>ではなく<div class="header">の意味でしたら、 上記の方法で関数をよんであげればいいです。 DreamWeaverを使えば共通化ができます。 あまりにも必要だったらC言語なんかで変換プログラムを作った方が早いような。 どうせ相手はテキストですし。
- dscripty
- ベストアンサー率51% (166/325)
1) Dreamweaver のような高機能な HTML エディタを使う。 ヘッダ、フッダなどの共通部分を無理なく、全ページ同時に編集できるらしいよ? 楽でいいね。 2) 高機能なテキストエディタをつかう。 複数ファイルにまたがって、文字列の置換ができるよ? 慣れれば、かなり早く一度に置換できるからおすすめ。 3) あとは、php や Perl をサーバじゃなくて、ローカルで実行して、出力される結果をファイルに保存してそれをサーバにアップロードする。 表結果を確認するのに、HTML の出力が必要だから、HTML と CSS に不慣れだと、すこし大変かな? さいごに、 共通部分を JavaScript でインクルードすると、JavaScript を無効にしてるひとには全く表示されないからおすすめできないよ? それなら、フレームで作ったほうがまだましかなぁ。。。
各ページのレイアウトを指定したいのでは無いですか? 若しそれで有れば『ヘッダ』の所でCSSファイルを指定すればOK <link rel="stylesheet" href="http://www.XXX.com/home.css" type="text/css" />
お礼
この場を借りて、皆様に感謝申し上げます。みなさま回答ありがとうございました。おっしゃる通りだと思います。相当調べたのですが、やはり難しいし、本来の目的にそぐわない手段であることが重々わかりました。これは無謀な方法だったということが分かったことも、一つ勉強になったと思います。ありがとうございました。