アプリ版:「スタンプのみでお礼する」機能のリリースについて

複数あるページからそれぞれ違うメニューを表示させたいです。
ページもメニューの種類も大量にあるため、メニューはjavascript内などに
記述して、共通のコードを読むようにしたいです。

[メニューA]
・menuA-1
・menuA-2
・menuA-3

[メニューB]
・menuB-1
・menuB-2
・menuB-3

[メニューC]
(以下略)

メニューがA~の数種類あるとして、
page1.html→メニュAを表示
page2.html→メニュBを表示
page3.html→メニュAを表示
page4.html→メニュBを表示
page5.html→メニュCを表示
 ・
 ・
 ・

…という風にしたい。

<body class=・・・>でページ毎に名前を付け、
javascript内で条件分岐にて選択しようとしたのですが、記述の仕方が
わかりませんでした。

メニューが増えた際になるべく効率よく修正できるようにしたいです。
よろしくお願いします。

A 回答 (3件)

こんにちは。



気になったのはJavaScriptが動かない人がアクセスすると何も表示されませんが良いのでしょうか?

方法はいろいろありますが、jQueryを併用して一つ作ってみました。
jQueryを利用しなくても出来ますが、実装が楽になるので使っちゃいました。

動作原理は
・menu.jsを読み込んだページのbodyからcssクラス名を取得する
・取得したクラス名に紐付くメニューを<ul id="menu">に追加する

page1.html
<body class="menu-a">
page2.html
<body class="menu-b">
page3.html
<body class="menu-a">
page4.html
<body class="menu-b">
page5.html
<body class="menu-c">
で試しています。

==== 動作確認サンプル
http://hppg.moe.hm/okwave/qa/q7346039/index.html
==== JavaScriptファイル
http://hppg.moe.hm/okwave/qa/q7346039/menu.js
    • good
    • 0
この回答へのお礼

遅くなりましてすいません。
参考にさせていただき、jQueryで作成することができました。
ありがとうございました。

お礼日時:2012/07/03 11:33

皆さんが仰るとおり、JavaScriptが動かない環境の人への配慮を考えると、JavaScriptでどうこうするのはオススメできません。



「IFRAME」をお使いになられてはいかがでしょうか?
http://www4.plala.or.jp/airegin/css/page40.html
ただし、IFRAMEが表示されない環境もありますからね。。。
    • good
    • 0
この回答へのお礼

遅くなりましてすいません。ありがとうございました。

お礼日時:2012/07/03 11:31

いまひとつ、されたいことがわかりませんが、


 あなたのサイトが、複数のカテゴリーに分かれていて、それぞれのカテゴリー内のページを開いたときに、そのカテゴリー内のナビゲーションが表示されるということでしょうか?

 もっとも効率的で楽なのは、サーバーサイドでプログラムを実行し提供するページを動的に作らせることです。作成するのは、本文だけ書き換えるHTMLを作成し、ヘッダーやナビゲーション、フッターなどはbodyのclass名でも見て置換させる。

 また、共通のナビゲーションをすべてのページに入れておいて、不必要なものは見せない。あるいは、階層を隠す。
 この場合メニューの変更は高機能なテキストエディタで一気に行ってしまいます。(私はEmEditop Pro)ですが、フォルダーを指定して、複数行にわたるテキストを一気に置換させています。

 他にjavascriptを使ってもできなくは無いですが、基本的にデータをすべて読み込む必要があることと、javascriptが無効になっている場合に表示に問題があること。そして一番の問題は、検索エンジンに読み込まれないことです。
    • good
    • 0
この回答へのお礼

おそくなりましてすいません。ありがとうございました。

お礼日時:2012/07/03 11:33

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