電子書籍の厳選無料作品が豊富!

 HTMLとJavascriptは初心者の部類です。
 
 仕事上、ある元のHTML(index.html)のヘッダー部分を取り出し、別のHTML(header.html)に書き込み、何らかの方法で元HTMLへ、先程取り出して新しく作ったHTMLの内容を引き込めないか考えています。(他にも何枚もあるHTMLファイルのヘッダ部分を一度に共通化したい為。)ネットをぐるぐるさがして、phpやSSIなる技術を使うと簡単に出来るよと書いてありますが、サーバーの設定をいじらなければならないので、今はあえて触れていません。いろいろ探して、以下のサイトにJavascriptを利用して、別HTMLを引き込むスクリプトを発見したので、早速試してみました。

参照サイト:http://d.hatena.ne.jp/kenpoco/20080501/1209636103

 HP編集用に、フリーソフトのHPProject2を利用しているのですが、そちらのビュー機能では正常に表示されるところまで作成できました(リンクや画像、CSS等も生きてます)。ただ、肝心のブラウザで見た時に、うまく読み込まれませんでした。

 別の方法で、以下のサイトの方法も試してみました。

参照サイト:http://tani.dank-hearts.com/2008/03/javascriptht …

こちらに関しては、ビュー機能内でも正常に表示されず、header.html内の内容がそのまま文字列として出力されてしまったり、文字化けしてしまったりしました。

こちらの都合でソースコードを上げることができないので、説明不足かもしれませんが、同じような問題に遭遇した方や、なにか他に注意するべきことがあることをご存知の方がいらっしゃりましたら、お知恵をお貸しいただければとても助かります。よろしくお願い致します。
(プログラミング経験ですが、C言語はひと通り勉強しています) 

A 回答 (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;
}
とか・・・
    • good
    • 0
この回答へのお礼

この場を借りて、皆様に感謝申し上げます。みなさま回答ありがとうございました。おっしゃる通りだと思います。相当調べたのですが、やはり難しいし、本来の目的にそぐわない手段であることが重々わかりました。これは無謀な方法だったということが分かったことも、一つ勉強になったと思います。ありがとうございました。

お礼日時:2012/04/25 16:39

JAVAScriptのDocument.writeでタグを書き出してくれます。


例えば
document.write('<p>あいうえお</p>');

これをヘッダ部にやればいけるかもしれませんが、たぶんダメでしょう。
理由はヘッダ部のJAVAScriptは多分、定義だけで実行しないのではないでしょうか。

それとヘッダ部が厳しい理由にもう1つ、遅延が挙げられます。
ヘッダ部が<head>ではなく<div class="header">の意味でしたら、
上記の方法で関数をよんであげればいいです。

DreamWeaverを使えば共通化ができます。
あまりにも必要だったらC言語なんかで変換プログラムを作った方が早いような。
どうせ相手はテキストですし。
    • good
    • 0

1) Dreamweaver のような高機能な HTML エディタを使う。



ヘッダ、フッダなどの共通部分を無理なく、全ページ同時に編集できるらしいよ?

楽でいいね。


2) 高機能なテキストエディタをつかう。

複数ファイルにまたがって、文字列の置換ができるよ?

慣れれば、かなり早く一度に置換できるからおすすめ。


3) あとは、php や Perl をサーバじゃなくて、ローカルで実行して、出力される結果をファイルに保存してそれをサーバにアップロードする。

表結果を確認するのに、HTML の出力が必要だから、HTML と CSS に不慣れだと、すこし大変かな?


さいごに、

共通部分を JavaScript でインクルードすると、JavaScript を無効にしてるひとには全く表示されないからおすすめできないよ?

それなら、フレームで作ったほうがまだましかなぁ。。。
    • good
    • 0

各ページのレイアウトを指定したいのでは無いですか?


若しそれで有れば『ヘッダ』の所でCSSファイルを指定すればOK
<link rel="stylesheet" href="http://www.XXX.com/home.css" type="text/css" />
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!