技 巧 鍵 盤 ─ KeyNavi:キーボードを活用してホームページを快適に─    
キー割当表示[Shift-H]        
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] フレームページでも個別URL指定を可能に ・サイトマップ [Shift-S]

■ フレームページでも個別URL指定を可能に

一般にフレームを使ったページでアドレスバーに表示されるURLは 親フレームのもので子フレームには依存しません。 ページの移動があり子フレームURLが変わったとしても アドレスバーに表示されるURLは変わりません。
表示されているページを「お気に入り」(ブックマーク)に登録したいとき、 メールで誰かに送りたいときなどに困ります。

JavaScriptを使ってこの問題に対応することが出来ます。 一般にURLには「#name」といった名前アンカーや「?」で始まる Query文字列を付加することが出来ます。 ここに子フレームのURLの情報を含めることで対応します。

フレームのURLを「parent.html」とし子フレームのURLを 「child_name.html」とします。 親フレーム側で「parent.html#name1」でアクセスされたら JavaScriptで子フレームには「child_name1.html」を表示するようにすれば OKです。

親フレームのURLに含まれるオプション文字列から子フレームのURLを作ります。 汎用的には name→URL の連想配列を用意して使うといいでしょう。

【親フレームのHTML例】

<html>
<head><title>子フレームのURLを動的に算出し設定</title></head>
<noscript>
<a href="default.html">JavaScript無効の場合はこちらから</a>
</noscript>
<script language="javascript"><!--
function expand(){
        var name=location.href.split("#")[1]
        var FRAME1_URL="child_"+name+".html";
        document.write(
                '<frameset cols="200,*">',
                '<frame src="./menu.html" name="frame0">',
                '<frame src="',FRAME1_URL,'" name="frame1">',
                '<noframes>',
                '<a href="',FRAME1_URL,'">フレーム未対応ブラウザはこちらから</a>',
                '</noframes>',
                '</frameset>'
        );
}
expand();
//-->
</script>
</html>




【JavaScript@Keynavi.Net : その他編 】
「Ctrl-矢印」でフォーカスを上下左右に移動できます。

  - status出力をリダイレクト:kl_status(s,opt)
  - 外部スクリプトを動的に読み込む
  - フレームページでも個別URL指定を可能に
  - 文字列の暗号化:kl_encrypt/decrypt()
  - Try,Catch文の互換性対策
  - クッキー処理:kl_cookie_set/del/get()

トップへ戻る [1]
ホーム KeyNavi対応方法 [0] JavaScript@Keynavi.Netトップ [1] フレームページでも個別URL指定を可能に ・サイトマップ [Shift-S]
キー割当表示[Shift-H] ─ KeyNavi Project 2003 ─