WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:フレームを使用したページを開いた時、任意のテキストボックスにフォーカスを移したい。

0:[投稿] js [2003/12/03 13:10 ][環境:IE6 W2K FreeBSD]

こんにちわ。
1枚のHPだったら開いた時にフォーカスを移すには

<BODY onload=document.myform.keyword.focus();>
<FORM ACTION ="./hoge.php" METHOD =post NAME=myform>
<INPUT TYPE="text" SIZE=20 NAME="keyword" >
<INPUT TYPE=submit VALUE=検索><BR>
</FORM>

のようなやり方でこのページを開いた時「keyword」にフォーカスがセットされますが、フレームを使用するとフォーカスが移らないのです。このような構成で、frm1.htmlに上記のようなフォームがあります。

index.html --- フレームページ(上下2分割)
frm1.html  --- 上ページ 検索フォームがある
hoge.php   --- 下ページ 検索結果を表示

index.htmlに「frm1.html の myform の keyword にフォーカス」
という命令を入れればよいのでしょうが、方法が分かりません。
教えて頂けないでしょうか?よろしくお願いします。


1:[回答] はま [2003/12/03 13:45 ]

ご存知かもしれませんが、
<frameset>を利用した場合、JavaScript自体が動かない場合
がありますよ。

たとえばこんな感じのものは動きません。
<html>
<frameset></frameset>
<script>
alert("test");
</script>
</html>

なので、<frameset>が処理される前にonloadとかを処理してもらう
ようにしないといけないんですけど、そうするとフレームがまだ無い
のでフレームをいじる処理はできません。
また、framesetの場合はonload自体が動かないと思います。
document.onload=alert; で試してみてください。

なので、この場合は各フレームのどちらかから動かすしかないんじゃないでしょうか?


2:[回答] [2003/12/03 15:12 ]

<frameset onload="フレーム名.document.myform.keyword.focus();">


3:[回答] はま [2003/12/03 15:17 ]

ああ、そうか。framsetのonloadを見ればいいのか・・・。


4:[回答] [2003/12/03 15:24 ]

onload=function(){フレーム名.document.myform.keyword.focus();}
でも勿論問題ない。


5:[完了] js [2003/12/04 08:44 ]

解決できました。ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World