ホームページ|目次|クイックガイド|イントロダクション|チュートリアル: 初級篇|チュートリアル: 中級篇|チュートリアル: 上級篇|付録|その他
環境変数OLBCK-拡張子の設定-フレーム機能の活用-著者名の表示-目次の階層化
Netscape 2.0のフレーム機能を活用するために
周知の通り、Netscape 2.0には、ウィンドウをフレームと呼ばれる小ウィンドウに分割し、複数のHTMLファイルを同時に表示する機能があります。たとえば、ウィンドウを左右に分割して左半分に目次を表示し、右半分に本文を表示することができるわけです。1つのフレーム対応ウィンドウを表示するためには、フレームの定義のためのHTMLファイルと個々のフレームのためのHTMLファイルが必要です。OLBCKには、ウィンドウを左右に分割するフレーム定義HTMLが添付されています(nt2.html。ver.0.91では添付するのを忘れてしまいました。申し訳ありません)。
フレーム機能を使った場合、<a>タグにtarget="..."というオプションを付けて出力先のフレームを指定します。フレームの名前は、フレーム定義HTMLの<frame>タグのname="..."オプションで指定します(<frame>には、フレームに最初に表示すべきHTMLファイルを指定するためのsrc="..."オプションもあります)。target="..."オプションのない<a>タグは、同じフレームに新しいHTMLファイルを表示します。
以上からもわかるように、目次ファイルから別のフレームに本文ファイルを表示したい場合には、target="..."オプションを指定しなければなりません。そこで、OLBCKでは、設定ファイルでtargetオプションを指定すれば、g_cntsが生成する目次ファイルの<A>タグにtarget="..."オプションが自動的に付けられるようになっています。OLBCKのtargetオプションの内容が<A>タグのtarget="..."の...の部分に収まるわけです。
逆に、本文ファイルの方は、$all_*や$prev_*といったものを指定してほかの本文ファイルや同じファイルのなかにリンクを張る必要はなくなるでしょう(張っても、同じフレームに表示するだけなら何の問題もありません)。しかし、まったく別のページに対するリンクを張る場合には<A>タグのtarget=...オプションでこまめにターゲットウィンドウを指定しなければなりません。target=...を忘れたばかりに、同じフレームのなかに外部ページが表示されたりするのは、かっこ悪いものです(ちなみに、フレームなしのウィンドウに新しいページを表示したい場合には、target="_top"と指定します)。
フレーム機能は、目次と本文というような関係の2つのHTMLファイルを表示するときには確かに便利ですが、ページが細分化される分、醜くもなります。そこで、同じ内容について、フレーム機能を使うページとそうでないページの両方を用意しているサイトもあるようです(私も実はそうしていますが)。このようなとき、同じ本文ファイルから違う名前のHTMLファイルを2つ作らなければならない場合があります。たとえば、フレーム機能を使うときには前後のページへのリンクのないページを使い、フレーム機能を使わないときには前後のページへのリンクを持つページを使うようなケースです。そのようなときには、suffixオプションを使うと便利です。たとえば、suffixとしてaを指定すると、a001.txtからa001a.html、a002.txtからa002a.htmlというように、拡張子の手前にaが挿入されます。もちろん、出力されるファイル名だけではなく、リンクとして埋め込まれるファイル名にもaは挿入されますので、リンクがずれることはありません。suffixのデフォルトは、当然空文字列です。
このように2種類のHTMLファイルを使い分けるときには、<A>タグのtarget=...にも注意が必要です。“_top”のようにシステムで定義されている名前なら問題はありませんが、フレーム機能を使っていないページからユーザーの側で定義した名前をターゲットとしてジャンプすると、突然新しいウィンドウが作成されてしまいます。そこで、g_bodyは、targetオプションが空文字列になっている場合には、入力ファイルのtarget="..."という部分を取り除きます。フレーム機能を使わないけれども、target="..."を取り除かれても困るという場合には、あまり美しくない方法ですが、targetオプションとして_topを指定してください。