- 締切済み
ヘッダやサイドバーの共有
現在、Webコンテンツのヘッダやサイドバーを、SSIのinculdeを利用して、ひとつのファイルを複数のページから読み込んでいます。 SSI,CGI,PHPなどを使用できないサーバにおいて、それらを実現するために、JavaScriptを利用しようと思います。 JavaScriptは使用したことがないので、これから覚えようとしているところです。 検索などをしても、自分のやりたいことについて直接書かれているサイトなどはうまく見つかりませんでした。 自分で調べた結果、document.write()で書き込めば実現できるのかなぁと思いました。 自分でもいろいろ試してみる予定ですが、このようなケースのスタンダードな方法、スマートな方法はあるのでしょうか? ソースなどを提示してくださればありがたいですが、簡単な説明だけでもいただけると、勉強する効率もあがります。 以上、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- leap_day
- ベストアンサー率60% (338/561)
こんにちは window.onload=function() { document.getElementById("header").innerHTML = msg; document.getElementById("sidemenu").innerHTML = msg1; } msg = "<div>ヘッダー部分<br>"; msg += "追加は『+=』で足していく"; msg += "</div>"; msg1 = "<div><h3>サイドバー</h3>"; msg1 += "menu1<br>menu2<br>menu3</div>"; のように記述していって『***.js』と保存します でhtmlの方に <script type="text/javascript" src="***.js"></script> <div id="header"></div> <div id="sidemenu"></div> とすれば<div id="header"></div>の中にmsgの内容が <div id="sidemenu"></div>の中にmsg1の内容が入ります src="***.js"は保存している場所により多少異なります こういう意味かな~~?
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
場合にもよるかも知れませんが、多くの場合はdocument.write()などを使って代用することが出来ると思います。 #が、javascriptがonになっていないと動かないです。 <!--#include virtual="http://どっか/test.cgi" --> とかの変わりに以下のようにする ------------------------------------------------ <script type="text/javascript" src="http://どっか/test.cgi"></script> ------------------------------------------------ test.cgiでは出力時にdocument.write()を付け加える ----------------------------------------------------------- print "Content-type: text/plain\n\n"; print "document.write('ここに何かの文字を書く');"; ----------------------------------------------------------- こんな感じで動くんじゃないかと思います。
補足
んんん??? CGIを使っているのはなぜでしょう? すいません、私にはよくわかりません。
お礼
なるほど、こんなやり方もあるのですね。 自己解決していたんですが、それは外部ファイルにdocument.write()を使用した関数を作成して、それを呼び出すという形でした。 getElementById メソッドってのは、色々と使えそうですねぇ。 参考になりました。 ありがとうございます。