むぎなびは、建築マップコンテンツをプルダウンメニューで表示させるJavaScriptです。このページではむぎなびを設置するための説明をします。むぎなびは改造が容易であり、建築マップだけでなく個人サイトにも使用することが出来ます。
むぎなび原版には、20以上のオプションファイルが用意されています。その中の一部を結合させたものが建築マップ仕様のむぎなびです。むぎなびの原版を詳しく知りたいかたはMugi's Homepageを参照ください。
建築マップ仕様のむぎなびを設置するには、建築マップ仕様の「むぎなび」を設置する方法だけを読めばOKです。建築マップで使用するには、そこに書かれた内容だけでじゅうぶん使えるようにしてあります。それ以外は改造をする方のための解説です。
Windows OS | IE4.0・・・動作します JavaScriptを無効にした場合・・・動作しません |
---|---|
Mac OS | IE4.x・・・動作しません JavaScriptを無効にした場合・・・動作しません |
他のOS | 動作しません。 |
Mugi's Homepage
このサイト内のコンテンツをプルダウンメニューで表示するむぎなびの作成をしていただきました。
むぎなびはどんなサイトでも設置しやすいように柔軟な設計がされておりますが、とりあえず動かせる状態までは建築マップ仕様のむぎなびで設置してみましょう。
むぎなびを設置するには、HTML文書内の3箇所に以下の内容を追記する必要があります。
head
要素内に追記する。<head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <script type="text/javascript" src="http://www.archi-map.jp/js-bin/mninit.js"></script> <link rel="stylesheet" type="text/css" href="http://www.archi-map.jp/css-bin/muginavi.css"> </head>
body
要素直下に追記する。<body> <script type="text/javascript"><!-- mnload("http://www.archi-map.jp/js-bin/menucfg.js")//--></script>
<script type="text/javascript"><!-- muginavi.showhere()//--></script> <ul class="muginavioff"> <li><a href="http://www.archi-map.jp/">ホーム</a></li> <li><a href="http://www.archi-map.jp/map_index_00.htm">インデックス</a></li> <li><a href="http://www.archi-map.jp/bbs/index.html">掲示板</a></li> <li><a href="http://www.archi-map.jp/links_00.htm">リンク</a></li> <li><a href="http://www.archi-map.jp/about_us_00.htm">このサイトについて</a></li> <li><a href="http://www.archi-map.jp/step_00.htm">参加のご案内</a></li> <li><a href="http://www.archi-map.jp/support_00.htm">サポート</a></li> </ul>
代替テキストとは、閲覧者側がJavaScriptを無効にしていたりむぎなびを動作させることが出来ない場合、代わりに表示するものです。内容は何を書いても構いませんが、むぎなびと等価なテキストを用意します。クラス名class="muginavioff"
でくくられた範囲がそれに該当します。今回は<ul class="muginavioff">
としていますが、<div class="muginavioff">
でも構いません。
特に改造する用事の無いかたは、これでむぎなび設置完了です。
5種類のファイルの役割を説明します。むぎなびを動かすためには、最低限この5種類のファイルが必要です。
HTML文書ではファイルを設置する順番も関与しますから間違えのないようにしてください。なによりも先頭にmninit.jsを書かなくてはなりません。
むぎなびのコンテンツ項目を各自で変更することができます。コンテンツファイルの変更に関係するファイルはitems.js
です。
muginavi.js
mninit.js
menucfg.js
muginavi.css
コンテンツはitems.js
に格納しています。
items.js
を各自で変更・管理したいかたは、同時にmenucfg.js
も各自で管理することが必須です。items.js
の場所はmenucfg.js
ファイル内で指定するので、menucfg.js
も各自で管理しないと、変更したitems.js
が反映されないためです。
ファイルは、メモ帳などのテキストエディタで開くことができます。
またはダウンロードしたファイルを右クリックして編集をクリック。直接開こうとしてもdocumentは宣言されていませんというエラーが出ます。
items.js
ファイルの中を見ると、以下のような独自ルールで構築されています。
muginavi.rootitems()
muginavi.add("項目ID-1","コンテンツ1","URL","ターゲット")
muginavi.add("項目ID-2","コンテンツ2","URL","ターゲット")
muginavi.add("項目ID-3","コンテンツ3","URL","ターゲット")
muginavi.rootend()
muginavi.makesubmenu("項目ID-1")
muginavi.add("項目ID-4","コンテンツ4","URL","ターゲット")
muginavi.add("項目ID-5","コンテンツ5","URL","ターゲット")
muginavi.add("項目ID-6","コンテンツ6","URL","ターゲット")
muginavi.submenuend()
muginavi.makesubmenu("項目ID-5")
muginavi.add("項目ID-7","コンテンツ7","URL","ターゲット")
muginavi.add("項目ID-8","コンテンツ8","URL","ターゲット")
muginavi.add("項目ID-9","コンテンツ9","URL","ターゲット")
muginavi.submenuend()
上記の設定をするとむぎなびは以下の画像のような見えかたをします。プルダウンメニューがどういう法則で出てくるか?を理解してください。
muginavi.rootitems()
からmuginavi.rootend()
で挟まれた部分が、最初に見えるコンテンツ群になります。muginavi.makesubmenu("項目ID")
からmuginavi.submenuend()
で挟まれた部分が、プルダウンメニューとして出てきます。muginavi.add("項目ID","コンテンツ","URL","ターゲット")
について特殊な設定を紹介します。
ターゲットなどはフレームを使わないサイトでは必要ないので、削除しても構いません。むぎなびを1ページでもフレーム内に設置した場合は、すべての項目にターゲット指定をしなくてはなりません。
-
を入れると水平線を表示します。-
を入れるとリンクのない素のテキストになります。muginavi.add("項目ID","コンテンツ")
という風に"URL","ターゲット"
ごと削除すると、リンク先は無いけれどリンクがあるようなテキスト装飾をします。(サブプルダウンメニューを出すときに使えます。)フレームを使うサイトの場合は、ターゲット指定しないとフレームの入れ子が発生しますので注意してください。
self
_top
_blank
_parent
むぎなびの見栄えや細かい設定を各自で変更することができます。見栄えに関する設定はmuginavi.cssとmenucfg.jsにあります。
muginavi.js
mninit.js
items.js
スタイルファイルです。ページ内にmuginavi.cssと独自のスタイルファイルを併用することも可能です。むぎなびを設置したページ全てにスタイルファイルを適用させているサイトなら、CSSを1つにまとめることも出来ます。ここでは建築マップ用のスタイルを紹介していますが、スタイル項目の設定次第でいろいろなむぎなびを作ることができます。
スタイルファイルでは設定出来ない各項目をここで指定します。該当する項目が必要のない場合は、その行ごと削除しても構いません。
/* メニュー設定 */ muginavi.align="left" //配置:left(デフォルト)/center/rightのいずれか。必ず小文字で。 muginavi.hilight="#f2f2f2" //マウスが乗ったときの背景色。#RRGGBBで指定。 muginavi.borderColor="#696969" //枠の色。#RRGGBBで指定。 muginavi.arrowColor="#000000" //サブメニュー記号「>>」の色。 muginavi.usetable=false //テーブル内に設置する場合にのみ指定。誤った指定をすると誤動作します。 muginavi.root_nospace=true //初期表示項目に自動で間隔を空けさせない。自分で間隔調整する場合等に。 muginavi.root_noborder=true //初期表示項目に枠を付けない。 onloadhilight="" muginavi.borderColorSub="#f5f5f5" //サブメニューの枠の色。#RRGGBBで指定。borderColorと同じの場合は省略。 muginavi.borderWidth=2 //サブメニューの枠の幅。単位:px。 muginavi.borderStyle="outset" //サブメニューの枠の見た目。指定できる値はCSSのborderStyleと同じ。 mnload("http://www.mediawars.ne.jp/~m921320/js-bin/items.js")
right
、通常はleft
を使っています。選択肢はleft center right
のいづれか。必ず小文字で記述してください。left
です。#RRGGBB
で指定。#000000
です。 >>
の色を設定します。#000000
です。=true
に変更してください。table
要素の中にむぎなびを入れない場合は今回の設定のように=false
と設定します。誤った設定をすると誤作動しますので注意してください。=false
です。=true
で余白を設けません。建築マップは縦線|でコンテンツ同士を区切るので=true
で設定しています。その逆の設定は=false
と書きます。=false
です。=true
で枠線を消します。その逆の設定は=false
と書きます。=false
です。2002年2月現在、建築マップは約500ページで構成しています。この膨大なページを迷うことなく少ないクリック数で目的ページに誘導することが、むぎなびの役割です。サイトマップのごとく全てのページに全てのリンク一覧を表示させることがベストなのですが、それでは逆に分かりにくくなります。そこで、普段は折りたたまれて隠れているが、必要なときにプルダウンメニューとして表示するScriptを導入しました。それがむぎなびです。
しかしこれは、視覚的な操作であり、音声ブラウザでは上手く処理できません。
JavaScriptに対応した音声ブラウザで、むぎなびを設置したページを読み上げさせた状況を説明します。
読み上げられる順番は、以下の通りです。
title
要素。body
要素直下に書かれたテキスト。display:none
で表示させていない部分。)建築マップのサブコンテンツは、約100ページあります。毎度ページが読み込まれるたびに、この100コンテンツを音声ブラウザが読み上げていては、いつまで経っても本文が始まりません。
その対策として、一番最初に読まれるサブコンテンツ部分に、読み飛ばしができるリンクを設置しました。
個人でむぎなびを設置されるかたは、むぎなびが表示する第1番目のハイパーリンクに、プルダウンメニューが出るように設定し、同ページの適切な場所に移動させる手段を用意してください。
建築マップでの例を挙げます。
muginavi.makesubmenu("index") muginavi.add("index_01","音声ブラウザで、サブコンテンツの読み上げを省略する。","#pass","_self") muginavi.submenuend()
muginavi.makesubmenu("index")
のindex
は、独自に設置した場合には違う名前になっているかも知れません。今回は、URLに#pass
というa
要素を用意しました。
<ul class="muginavioff"> <li><a href="http://www.archi-map.jp/" name="pass">ホーム</a></li> <li><a href="http://www.archi-map.jp/map_index_00.htm">インデックス</a></li> <li><a href="http://www.archi-map.jp/bbs/index.html">掲示板</a></li> 以下省略
ホーム
と書かれた部分にname
属性で値をpass
と記述しました。これでむぎなびの一番最初に開くプルダウンメニュー音声ブラウザで、サブコンテンツの読み上げを省略する。を指示すると、100あるサブコンテンツの読み上げを省略し、ホームから読み上げることになります。また、title
要素が読み上げられた後、すぐに読み飛ばしをするためのハイパーリンクを読み上げるため、該当文章を長めに用意しておかないと、あっという間に通り過ぎてしまいます。
実際にこのスクリプトを使ってこのページでむぎなびは動いているのですから、きっと変更すべき部分を変更し忘れていることが原因でしょう。以下にチェックリストを用意してみました。
items.js
の項目IDが重複している。body
要素直後にmenucfg.js
が無い。また、むぎなびが根本的に出来ないことを、以下に挙げておきます。
position
指定された要素にむぎなびを設置すること。DOCTYPE
宣言により、Webブラウザが仕様準拠の厳格解釈モード (Standards mode)で表示すること。Windows OSの標準設定では、ファイル名のあとに続くファイルの種類拡張子を表示しないように設定してあります。通常作業では拡張子の表示がなくともアイコンの絵柄で判断できますが、ほとんどのサーバーはUNIX OSなので、アイコンではなく拡張子でファイルの種類を区別します。
Windows98SEでは、エクスプローラの表示→フォルダ オプションを指定すると以上の画面が出てきます。表示のしおりをクリックして登録されているファイルの拡張子は表示しないにチェックマークが入ってると思います。それを解除して適用ボタンをクリックしてください。
テキストエディタ、Windowsならメモ帳などで開きます。もしくはファイルを右クリックすると編集というコマンドがありますから、そこからファイルを開いてください。
<要素名 class="muginavioff">
から</要素名>
までの内容は何?。<要素名 class="muginavioff">
から</要素名>
で挟まれた部分は、むぎなびが起動しない場合に表示する代替テキストです。JavaScriptを無効に設定しているかたやむぎなびが起動できない環境のブラウザでは、この部分を表示します。
JavaScriptを実行させるための宣言文は、例えばmenucfg.js
なら、
<script type="text/javascript" src="menucfg.js"></script>
と書くだけで問題なく動くのですが、これでは古いバージョンのブラウザだとJavaScriptを無効に設定しても無効にならずにエラー扱いとなります。そのためにわざわざ、
<script type="text/javascript"><!-- mnload("menucfg.js") //--></script>
という書きかたをしています。