@IT情報マネジメント会議室は、2009年4月15日に新システムに移行しました。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
新たに書き込みを行う場合には、新しい会議室をご利用ください。
- @IT情報マネジメント 会議室 Indexリンク
- IT戦略
- 仕事の改善
- アーキテクチャ
- プロジェクト管理
- ITインフラ
- Webマーケティング
- BPMプロフェッショナル
- 業務アプリ
- - PR -
(JavaScriptなどの)外部ファイルでプルダウンメニューを一括管理するには?
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-03-11 21:02
JavaScript初心者です。
(JavaScriptなどの)外部ファイルでプルダウンメニューを一括管理するにはどのようにしたら良いのでしょうか? 現在は、各ページに下記のようなソースで、メニューを追加するたびに全てのページを更新しなければなりません。 _______________________________________________________________________________ <html> <head> <title>サンプル</title> <link rel="stylesheet" type="text/css" href="menu.css" media="all"> <script Language="JavaScript"><!-- menuList = ["a","b"]; function pulldownmenu(mObj) { pdMENU = getMenuObj(mObj); flag = pdMENU.style.visibility; for (i=0; i<menuList.length; i++) { pdMENU = getMenuObj(menuList[i]); pdMENU.style.visibility = "hidden"; } pdMENU = getMenuObj(mObj); if (flag == "visible") pdMENU.style.visibility = "hidden"; else pdMENU.style.visibility = "visible"; } function getMenuObj(obj) { if (document.all) return document.all(obj); if (document.getElementById) return document.getElementById(obj); return obj; } // --></script> </head> <body> <div class="menuA" style="position:absolute;top:5px;left:5px;"> <a href="javaScript:pulldownmenu('a')"> <IMG src="image/a.gif" onmouseover="this.src='image/ah.gif'" onmouseout="this.src='a.gif'" width="100" height="50" border="0" alt="A"> </a> </div> <div id="a" class="menuA" style="position:absolute;top:55px;left:5px;visibility:hidden"> <a href="a.html" style="font-size:15px;">A-1のページ</A><BR> </div> <div id="a" class="menuA" style="position:absolute;top:55px;left:5px;visibility:hidden"> <a href="a.html" style="font-size:15px;">A-2のページ</A><BR> </div> <div class="menuB" style="position:absolute;top:5px;left:105px;"> <a href="javaScript:pulldownmenu('b')"> <IMG src="image/b.gif" onmouseover="this.src='image/bh.gif'" onmouseout="this.src='b.gif'" width="100" height="50" border="0" alt="B"> </a> </div> <div id="b" class="menuB" style="position:absolute;top:55px;left:105px;visibility:hidden"> <a href="b.html" style="font-size:15px;">B-1のページ</A><BR> </div> <div id="b" class="menuB" style="position:absolute;top:55px;left:105px;visibility:hidden"> <a href="b.html" style="font-size:15px;">B-2のページ</A><BR> </div> </body> </html> _______________________________________________________________________________ どなたか、助けてください! よろしくお願いします。 | ||||||||
|
投稿日時: 2008-03-11 21:08
Visual Studio や Web Expression でマスタ ページ機能を使ったりするのが今風なのではないでしょうか。 一昔前だと Fontpage などで 「共有枠」 という機能がありました。 ともかく一括で更新できます。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-03-12 11:22
じゃんぬねっと様
早速のご返答ありがとうございます。 質問の書き方が悪かったのですが、デザインの共有では無く、ページを増やす=メニュー項目を増やす度に全てのページを更新しなければならないので、メニュー項目の一括管理をしたいのです。 *しかも、前回のソースは一部間違っておりました。 混乱を招き、申し訳ございません。 フレームが画面が小さくなるので、フレーム以外での方法を探しております。 何度もお手数をおかけして申し訳ございませんが、ご教授いただけませんでしょうか。 よろしくお願いいたします。 _______________________________________________________________________________ <html> <head> <title>サンプル</title> <script Language="JavaScript"><!-- menuList = ["a","b"]; function pulldownmenu(mObj) { pdMENU = getMenuObj(mObj); flag = pdMENU.style.visibility; for (i=0; i<menuList.length; i++) { pdMENU = getMenuObj(menuList[i]); pdMENU.style.visibility = "hidden"; } pdMENU = getMenuObj(mObj); if (flag == "visible") pdMENU.style.visibility = "hidden"; else pdMENU.style.visibility = "visible"; } function getMenuObj(obj) { if (document.all) return document.all(obj); if (document.getElementById) return document.getElementById(obj); return obj; } // --></script> </head> <body> <div style="position:absolute;top:5px;left:5px;"> <a href="javaScript:pulldownmenu('a')"> <IMG src="image/a.gif" border="0" alt="A"> </a> </div> <div id="a" style="position:absolute;top:55px;left:5px;visibility:hidden"> <a href="a.html"A-1のページ</A><BR> <a href="a.html">A-2のページ</A><BR> </div> <div style="position:absolute;top:5px;left:105px;"> <a href="javaScript:pulldownmenu('b')"> <IMG src="image/b.gif" border="0" alt="B"> </a> </div> <div id="b" style="position:absolute;top:55px;left:105px;visibility:hidden"> <a href="b.html">B-1のページ</A><BR> <a href="b.html">B-2のページ</A><BR> </div> </body> </html> _______________________________________________________________________________ | ||||||||
|
投稿日時: 2008-03-15 01:24
検証してませんが。
SEOなどの見地から見た場合ですと、ページにテキストリンクを書いたほうがいいので全ページ更新は仕方ありません。 PHPなどのサーバサイドスクリプトでメニューを動的に表示すべきでしょう。 コンテンツマネジメントシステムを使えば、比較的楽に導入できるとは思います。 _________________ http://aglabo.com/ @Homepage http://furukawa-select.com/mt/ @Blog | ||||||||
|
投稿日時: 2008-03-15 07:03
楽をしようと思うと、
(じゃんぬねっとさん、あつしfxさんと同じですが) 動的にスクリプトを吐く必要があると思います。 で、サーバーサイドが何なのかを記述する必要があるのでは。。。 (PHP,ASP.NET,Struts) | ||||||||
|
投稿日時: 2008-03-15 08:22
外部にJavaScriptファイルを置いて、DOMで動的に<option>タグを追加すればできますよ。
そのファイルを全体のページでリンクすればよいだけです。 | ||||||||
|
投稿日時: 2008-03-15 10:03
私はあまりJavaScriptが好きではないので使いませんが
(ブラウザを限定すれば?)次のようなこともできます。 test.html
test.js
p.s. 個人的にはサーバサイドが無くてもXSLTなどで一括更新するかな | ||||||||
|
投稿日時: 2008-03-16 22:21
皆様
ご教授ありがとうございます! PHPかXSLTが良さそうですね。 (作成しているのは社内HPなので、とりあえずはJavaScriptで組み、勉強しながらPHPかXSLTに移行したいと思います。) じゃんぬねっと様 もしかして、見当違いな返信をしていたら申し訳ございません。 Visual Studio、Web Expression、マスタ ページ機能、Fontpageなど、全て初めて聞いた単語で、ネット検索で調べて返信しましたが、indigo-x様のアドバイスを読むと私の勘違いのようですね。 せっかくのアドバイスなのに、きちんと内容が受け取れず、すみませんでした。 あつしfx様、indigo-x様 PHP(JavaScriptもですが・・・)は自分一人でまともにコーディングできないので(もちろん自分でコーディングできるのが一番ですが、一からその勉強をしていては、いつまでたっても完成できず、上司にあきれられてしまいそうなので)、ネットでソースを拾ってきて修正することになるかと思います。 下記のページを見つけ、掲示板を修正して使おうと思ったのですが、現在、文字化けで悩んでます。(汗) http://phpspot.net/php/ もし、お勧めサイトなどございましたら、ご教授ください。 よろしくお願いいたします。 Anthyhime様 アドバイスありがとうございます。 ただ、恥ずかしながらJavaScriptを自分一人でまともにコーディングできず、「DOMで動的に<option>タグを追加する」とは、どうして良いのか分かりません。 *JavaScriptはネットで拾ってきたソースを修正して使っています。 下記ページを参考にして勉強しておりますが、もし、良いサイトがございましたらご教授ください。 http://www.tohoho-web.com/js/dom.htm または、もう少し詳細にご教授いただけませんでしょうか。 よろしくお願いいたします。 kuma様 XSLTは初めて聞いた単語ですが、ネット検索したところ、とても面白そうな気がします。 もし、下記ページより初心者向けのお勧めサイトがあればご教授ください。 http://www.atmarkit.co.jp/fxml/tanpatsu/xslt/xslt00.html よろしくお願いいたします。 |