- ベストアンサー
Locationについて
こんにちは。 今PerlでLocationを使って2つに分かれているフレームの(frame1とframe2)frame1にリンクをさせようとしています。 下のソースの中にTarget="frame1"を追加したいのですが追加は可能でしょうか? プログラムはこんな↓感じです。 print "Location: http://www.XXX/cgi-local/XXX.cgi?free=$XX\n\n"; ご教授ください。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
フレーム内で移動する場合はそのフレーム名またはターゲット名を指定してください。 self.location.href="http://www.aaa.aa.aa"; selfはそのページがあるフレーム自身のことです。 もしくは移動するフレーム名を設定してください。 サブミットと書かれているのでフォームのデータを送るのでしょうか? その場合、上記の方法では出来ません。 遷移先にデータを送る場合はフォームのaction指定を動的に変えれば出来ます。 その例を載せておきます。 例) <HTML> <HEAD> <SCRIPT> function send(){ //どのラジオボタンがチェックされたか判定 var i; if (document.form_a.r_b.length) { for (i = 0; i < document.form_a.r_b.length; i++) { if (document.form_a.r_b[i].checked) { var ck_b = document.form_a.r_b[i].value; } } } else { if (document.form_a.r_b.checked) { var ck_b = document.form_a.r_b.value; } } //チェックされたボタンから遷移先を分ける if(ck_b=="A"){ document.form_a.action="URL1";//FORMのaction設定 document.form_a.submit();//submit処理 }else if(ck_b=="B"){ document.form_a.action="URL2";//FORMのaction設定 document.form_a.submit();//submit処理 } } </SCRIPT> </HEAD> <BODY> <FORM name="form_a" method="POST" target="_self"> <INPUT type="radio" name="r_b" value="A" checked>A <INPUT type="radio" name="r_b" value="B">B <INPUT type="button" value="SUBMIT" onClick="send()"> </FORM> </BODY> </HTML>
その他の回答 (1)
- wolfwood
- ベストアンサー率50% (199/398)
未確認ですが、 print"Window-target:フレーム名(ターゲット名)"; これで出来るそうです。 ただしネットスケープ限定だそうです。 IEでは基本的に出来ないようです。 他の方法としてはJavaScriptに処理を飛ばしてフレーム指定して遷移するか、 フレームページごと読み込むことぐらいですね。 どちらもご希望の動作とは異なると思いますが・・・。
補足
ラジオボタンを選択して、ラジオボタンが選択物によって最後にサブミットボタンを押した時に違うリンク先へ飛ばす方法をいろいろと考えていました。 考えた末にジャバスクリプトでリンク先を違う方法に変える事にしました。 ステップ1として サブミットが押された時点でリンクさせる方法を試みましたが同じページを読み込んでしまいます。 サンプルは下記の通りです。 location.href="http://www.aaa.aa.aa" どうかうまくいく方法を教えて頂けないでしょうか? お願いします。