- ベストアンサー
改・キーボードナビゲーション
http://oshiete1.goo.ne.jp/kotaeru.php3?q=762151 にて質問し、解決したに見えたのですが、確認もせず閉じた為、再度投稿させて下さい。 ページトップにフレームファイルを置き、 <frameset cols="250,*" frameborder="0" framespacing="0"> <frameset rows="16,*" frameborder="0" framespacing="0"> <frame src="***.html" name="0" SCROLLING="NO" NORESIZE> <frameset rows="25,*" frameborder="0" framespacing="0"> <frame src="***.html" name="1" SCROLLING="NO" NORESIZE> <frameset rows="51,*" frameborder="0" framespacing="0"> <frame src="***.html" name="2" SCROLLING="NO" NORESIZE> <frame src="***.html" name="3" SCROLLING="NO" NORESIZE> </frameset> </frameset> </frameset> <frame src="***.html" name="4" SCROLLING="NO" NORESIZE> </frameset> とします。 NAME“0”のページがメニューで、ここをクリックするとNAME“1”に開かれる仕組みです。 NAME0に、 function checkNavigation() { if(event.keyCode==49)location.href="NAME1に開くページ"; } window.document.onkeydown = checkNavigation; と書きます。 前投稿では、「1.location.~」とすればOKだとなっていたのですが、確認した所何故か機能しませんでした。 NAME0をアクティブページにして“1”を押下してみたり、試して見たのですが駄目でした。 どうしたら良いのでしょうか。お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
前回の投稿を見て、自分のHPに実際に搭載してみました(笑) で、スクリプトは「フレームファイル」に定義しないといけません。 でないと、どこにフォーカスが当たっているかによって、スクリプトが動作したりしなかったりします。 それから、name="" の値は、必ずアルファベットから始まるようにしてください。たとえば "n0"、"n1" とか。 でないと、JavaScript から巧くアクセスできません(オブジェクトが中途半端に生成されてしまうため)。 フレームの1つを name="n1" と定義した場合、 window.n1.location.href="wwwww" と記述することによって、"wwwww" ページに飛びます。
その他の回答 (2)
- Struts
- ベストアンサー率48% (29/60)
それぞれのnameをpage0、page1のようにし parent.page1.location.href="開くページ"; でどうでしょう?
お礼
回答No.1以降のname属性は「dk0・dk1・dk2・dk3・dk4」にしましたので、 恐らく同じ結果に思います。 わざわざすみません。回答有難う御座います。
フレームにつけた名前を変えてみてください。 JavaScriptでは、フレーム名などのname属性に、数字から始まる文字列は使用できないはずです(数字のみや、000frameなどはNG)。 数字以外の文字から始まる名前に変える必要があるでしょう。 また、別フレームを指定する場合は、いきなりフレーム名を指定するのではなく、フレームの階層も明示する必要があるでしょう。 parent.ターゲットのフレーム名.location.href="URL"; という指定に変えてみてください。
お礼
name属性を“dk*”に変更した所、しっかりと機能しました! ただ、タグが打ち込んであるページがアクティブになっていないと機能しない様で、 一度name属性dk1の所へ開いた後は効果が無く、その後にdk2、dk3と続けて行く事は無理みたいでした。 同じウインドウ内に操作専用のページを入れれば続けて機能してくれる様なので、 それを考慮してみようかと思います。 回答有難う御座いました。
お礼
「フレームに設置」は盲点でした! 「IFRAMEに使ってみるか...」とは思ったのですが、アクティブページは移動してしまい駄目だろうと試しもしませんでした。 アルファベットからで無いとウマく行かない点も、既に回答して下さった方の物も含め、とても勉強になります。 回答有難う御座います。