別のフレームのテキストにフォーカスがくるようにするには?

[上に] [前に] [次に]
ばーばぱぱ 1999/05/25(火) 13:12:44
たとえば、3つのフレームがあり、3のフレームにあるボタンをクリックしたとき、1にあるテキストにフォーカスがくるようにするには、どうしたらよいのでしょうか?
とりあえず、以下のようにしたのにうまくいきません。助けてください。
---------------------------------------------------------
<script language="javascript">
<!--
function focus(){
self.frames.document.FORM3.F3.blur();
Top.No1.document.FORM1.NenFrom.focus();
Top.No1.document.FORM1.NenFrom.select();
}
// -->
</SCRIPT>

たこすけ 1999/05/25(火) 18:06:59
> function focus(){
focus()はメソッドなので、違う関数名にしましょう。

> Top.No1.documen...
フレームの構造がどうなっているのか分からないのですが
parent.No1.document... だと思います。(あと、Topではなくtop)

ばーばぱぱ 1999/05/26(水) 09:44:02
parent.No1.documentとして行うと
「parentが宣言されていません」となってしまう。
parentをtopにしてやっても同じようなエラーになってしまいます。
どこで宣言すればよいのかわかりません。
教えてください。

Nobu3 1999/05/26(水) 10:29:05
3つのフレーム、「No1」「No2」「No3」があって、
「No1」フレームの「FORM1」フォームの「NenFrom」エレメントにフォーカスをあてて、選択状態にする。ってことですか?

ならば。
まず、「No3」フレームにスクリプトを書いてますか?
次に、「関数名」は変更しましたか?
最後に、フレームなどの名前はちゃんとあってますか?
あと、「blur()」の文は必要ありません。というか、無い方が良いでしょう。

以上を守れば、IE4、NN4では動作します。


ばーばぱぱ 1999/05/26(水) 12:51:05
Nobu3に指摘された通りに関数名を変更し、blur()も削除して
[No3]フレームにちゃんとスクリプトを書いているのにparentが
宣言されていませんになってしまいます。
以下のようにスクリプトを変更したのですが、
おかしなところがあれば教えてください。
-----------------------------------------
フレームの構成
<FRAME src="ParentFrame.htm" name="No1" frameborder="0" noresize>
<FRAME src="Kihon.htm" name="No2" frameborder="0" noresize>
<FRAME src="Function.htm" name="No3" frameborder="0" noresize>
----------------------------------------
No3フレームのスクリプト
<script language="javascript">
<!--
function warp(){
Parent.No1.document.FORM1.NenFrom.focus();
}
// -->
</script>
-------------------------------------------
よろしくお願いします。

Nobu3 1999/05/26(水) 12:56:27
原因は「Parent」ですね。

スクリプトは大文字、小文字を正確に書かないとダメです。
「parent」と書きましょう。


ばーばぱぱ 1999/05/26(水) 13:24:18
[[解決]]
Nobu3ありがとうございます。
やっとできました。大文字、小文字でだいぶ違うんですね。
やはり、このラウンジは勉強になります。
本当にありがとうございました。(涙)

maeda [E-Mail] 1999/05/26(水) 15:34:51
えぇと、解決しているようですが、一点だけ。

<SCRIPT>タグの「LANGUAGE」属性は、「javascript」ではなく、
「JavaScript」と記述しなければならなかったと思いますが。
それとも、どちらでもいいんでしたっけ?


Nobu3 1999/05/26(水) 15:54:37
どちらでもかまわないようです。

<script language="javascript">
<!--
msgbox "javascript"
//-->
</script>
<script language="JavaScript">
<!--
msgbox "JavaScript"
//-->
</script>
<script language="vbscript">
<!--
msgbox "vbscript"
//-->
</script>

こんなスクリプトを書いたら、上の2つはJavaScriptとしてエラーが出ましたので・・・。
IE4だけで確認しました。


[上に] [前に] [次に]