ボタンの表面の名前を変える

[上に] [前に] [次に]
1999/07/26(月) 15:54:24
index.htmで、
<FRAMESET ROWS="30%,*" border=3>
<FRAME NORESIZE SRC="head.html" name="HEAD" SCROLLING="no">
<FRAME NORESIZE SRC="main.html" name="MAIN">
</FRAMESET>
と設定し、head.htmlで、
<INPUT type=radio name="rd" checked>ラジオ1</TD>
<INPUT type=radio name="rd">ラジオ2</TD>
というラジオボタンを作り、
<input type="button" value="ボタン"
onClick="parent.MAIN.location.href='./main.html'">
という押したらMAINフレームの中を変えるボタンを作り、
main.htmlにボタンを作りました。
head.htmlのラジオボタンのチェックによって、
main.htmlの中で作ったボタンの表面の名前を変えたいのですが、
main.htmlを呼ぶ前は何もせず、
main.htmlを呼んだ後なら処理するようにするには、
JavaScriptで、どのようにしたらよいですか?
(長くなってごめんなさい)

Tmb 1999/07/26(月) 16:49:12
いまいち意図をつかめてるか自信はないのですが,
> <FRAME NORESIZE SRC="main.html" name="MAIN">
このMAINというフレームに表示されてるページのURLによって,ボタンを押したときの
動作を振り分けたい,ということでしょうか?

#質問だとどっちも同じなもんで混乱してますけど。

もしそうであれば
if (parent.MAIN.document.location.href == [URL名(フルパスで)] ){
parent.MAIN.document.[フォーム名].[ボタン名].value = "hogehoge";
}
という感じでいけると思いますが・・・。

1999/07/26(月) 18:18:26
すみません。名前を変えるのを忘れてました。
ボタンを押したときに呼び出されるのは、
main2.htmlということにします。
それで、大体そういうことだと思いますが、
ラジオボタンをチェックするたびに、main2.htmlが
呼び出されている常態かを調べ、呼び出されていれば、
main2.htmlのボタンのvalueを変えるという動作をしたいのです。
if (parent.MAIN.document.location.href == ///F|/TEST/main2.html) {
parent.MAIN.document.[フォーム名].[ボタン名].value = "hogehoge";
}
というようにTmbさんの言うようにやってみたのですが、
うんともすんとも言いません。
フルパスが間違っているのでしょうか?

Tmb 1999/07/26(月) 18:28:09
説明が足りなかったようです。フルパス名は'ないし"で囲ってください。
またフォーム名,ボタン名についてはmain2.htmlで書き換えるボタンのものを使ってください。

それから念のために,
alert(parent.MAIN.document.location.href);
という一文をif文の前などに付けて,フルパス名をチェックしてみるとよいと思います。
main2.htmlを呼び出した後に実行して,アラートボックスに表示されるものをif文に
書けばよいわけですので。

あと,もちろんフルパス名はサーバーにアップロードした場合には変化しますので注意して
下さい。念のため。

たこすけ 1999/07/26(月) 18:47:52
> フルパス名はサーバーにアップロードした場合には変化しますので
if (parent.MAIN.document.location.href.lastIndexOf('ファイル名') != -1)
とかで対応できないかな?
フルパスより信頼性が劣るけど・・・

> main2.htmlが呼び出されている常態かを調べ、
これだけならhead.html内で寝ているフラグを
main2.htmlのonLoadで立てるというのはどうでしょう

1999/07/26(月) 19:02:00
alertで見たところ、
file;///F|/test/main2.htmlと表示されたので
フルパスのところを
///F|/test/main2.html
と書いたのですが、
何も起こりません。間違ってますか?

たこすけ 1999/07/26(月) 19:32:32
> file;///F|/test/main2.htmlと表示されたので
;(セミコロン)じゃなくて:(コロン)

フルパスのところを
file:///F|/test/main2.html
と記述しましょう。

フルパスはブラウザでmain2.htmlを開いて
URL欄を全てコピーすれば確実に拾えるんじゃないですか?

1999/07/28(水) 17:02:47
ファイルのフルパスの中に英数字以外が入っていると、
出来ないんですね。そこでちょっと引っかかってましたが、
ファイルを英数字のフォルダに移したら出来ました。
ありがとう。

1999/07/28(水) 17:03:45
[[解決]]
チェックするの忘れてました。

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