![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
簡単な質問かもしれませんがご教授お願いいたします。
HTMLページで下図のようなフォームを作成したいと考えています。
図:
┌────────┬─┐ ┏━━━┓
│リストフォーム │▼│ ┃ボタン ┃
└────────┴─┘ ┗━━━┛
・項目1 ↓ 1.押すと新しいウィンドウが表示
・項目2 ┏━━━━━━━━━━━┳┳┓
・項目3 ←────┐ ┣━━━━━━━━━━━┻┻┫
・項目4 │ ┃ ┃
∥ │ ┃ ・項目1 ┃
∥ │ ┃ ・項目2 ┃
∥ └─╂-・項目3 ← 2.リンクになっていて押すと...
∥ ┃ ・項目4 ┃
∥ ┃ ┃
∥ ┗━━━━━━━━━━━━━┛
∥
∥ 3. 新しいウィンドウが消えて
↓
┌────────┬─┐ ┏━━━┓
│項目 3 │▼│ ┃ボタン ┃
└────────┴─┘ ┗━━━┛
4. 項目3が選ばれている。
これをJavascriptで実現する方法がかかれたホームページがあったのですが,つい最近消えてしまったので,方法を探しています。
この方法がサンプルとして紹介されているページや,または,実現する方法を教えていただけないでしょうか。
よろしくお願いいたします。
(図が見づらくてすいません)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_02.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
子ウィンドウから親ウィンドウにアクセスする場合には、window.openerと言うプロパティが親ウィンドウを指すプロパティになりますので、これを利用すればよいと思います。
具体的には、子ウィンドウ内で「window.opener.document.form1.select1.options[x].selected=true;」という処理を定義して実行すれば、親ウィンドウ内のform1という名前のフォーム内の、select1と言う名前のプルダウンメニューのx番目のoptionを選択した状態にすることができると思います。 なお、このときのx番目は、0から始まる連番で指定します(最初の項目が(x=0)番目にあたります)。
具体的なアドバイスですが、質問の動作を実現するソースの例を書きます。
親ウィンドウ内のセレクトメニューは、以下のようにしてください。
<form name="f1">
<select name="s1">
<option>リストフォーム</option>
<option value="項目1">項目1</option>
<option value="項目2">項目2</option>
<option value="項目3">項目3</option>
<option value="項目4">項目4</option>
<option value="項目5">項目5</option>
</select>
</form>
formに「f1」、selectに「s1」と言う名前を与えておきます。
子ウィンドウのソースは、以下のようにしてみてください。
<html>
<head>
<script type="text/javascript">
<!--
function checksel(v){
if (window.opener){
for (i=0; i<window.opener.document.f1.s1.options.length; i++){
if (window.opener.document.f1.s1.options[i].value==v){
window.opener.document.f1.s1.options[i].selected=true;
}
}
}
window.close();
}
//-->
</script>
</head>
<body>
<p>・<a href="#" onClick="checksel('項目1'); return false;">項目1</a><br>
・<a href="#" onClick="checksel('項目2'); return false;">項目2</a><br>
・<a href="#" onClick="checksel('項目3'); return false;">項目3</a><br>
・<a href="#" onClick="checksel('項目4'); return false;">項目4</a><br>
・<a href="#" onClick="checksel('項目5'); return false;">項目5</a><br></p>
</body>
</html>
こちらのソースでは、head内でchecksel(v)と言う関数を定義しています。 この関数は、呼び出されるとまず親ウィンドウが開いているかどうかをチェックし、親ウィンドウがある場合には、その親ウィンドウにあるf1と言うフォーム内のs1と言う名前の要素にアクセスし、その中のoptionを一つ一つチェックしていきます。 このとき、関数の呼び出し側から渡された引数の値を、親ウィンドウのs1の持つoption要素のvalueと照合し、一致した場合にはそのメニューを選択した状態にします。
上記の処理が終わったあとには、子ウィンドウ自身を閉じるようにしてあります。
関数を呼び出す側のリンクは、onClickで関数を呼び出すように記述しています。 このとき、checksel()を呼び出す時に、選択状態にしたいoption要素が持つvalue値を引数として渡すように記述する必要があります。
長くなりましたが、参考になれば…
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_15.png?5a7ff87)
No.2
- 回答日時:
丁寧な説明で大変分かりやすいです^^
ここのサイトの「ウィンドゥ」あるいは「サブウィンドゥ」項を参考にしてください。
http://www.openspc2.org/reibun/javascript/
参考URL:http://www.openspc2.org/reibun/javascript/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) Googleフォーム、効率的な入れ方 2 2022/10/03 22:44
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Access(アクセス) Outlook(Hotmail)の表示について 1 2022/12/08 14:37
- Chrome(クローム) Google Cromeのブックマークのリストの複数の項目を一括して消去する方法はないのでしょうか? 1 2023/08/16 21:15
- Windows 10 ウィンドウズ11でスリープの設定は? 1 2022/05/26 02:41
- その他(Microsoft Office) (至急)Googleのスプレッドシートの条件付き書式について 2 2022/09/11 08:50
- 教えて!goo ベストアンサー、お礼の仕方教えてください。 ベストアンサーやお礼をしたくてもボタンが見つかりません。 2 2023/01/13 18:49
- Mac OS リマインダーの実行済み項目を削除したい 2 2022/05/25 00:21
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javascript_submit()完了後に処...
-
エクセルのシート上に別のシー...
-
リンク時、親ウインドウを最前...
-
VBAで任意のウインドウのサイズ...
-
ラジオボタンで項目選択→別ウィ...
-
孫ウインドウを閉じたら親をリ...
-
子ウィンドウのリクエストを親...
-
MDIでのメニューの変更
-
GOLIVEでページを開いたら自動...
-
リンクを同じウインドウで開くには
-
VC++2005の操作について
-
フォーカスが親ウインドウから...
-
助けてGmailでボタン表示が消え...
-
VBの画面で、全ウィンドウを一...
-
ウィンドウのロードが終了した...
-
response.redirect <<URL>> で...
-
作成側:サブウィンドウの表示...
-
別フレームで開いたウインドウ...
-
パワーポイント2000で、複数の...
-
親子関係の無いウィンドウの制御
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
デスクトップ画面を4分割するには
-
VBAで任意のウインドウのサイズ...
-
VBの画面で、全ウィンドウを一...
-
ウィンドウの2重起動を防止したい
-
ウィンドウ名からウィンドウオ...
-
ポップアップと作業ウィンドウ...
-
子ウィンドウの存在確認
-
インタネットからPDFファイルだ...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
子ウィンドウを常に手前表示、...
-
window.Openをモーダルにできま...
-
ブラウザ(IE)からエクスプロー...
-
JavaScriptで指定Windowを最大...
-
子→親ウインドウへデータを受け...
-
1クリックでモーダルを開いてか...
-
親ウィンドウから開いた子ウィ...
-
初心者javascript グーグルクロ...
-
孫ウインドウを閉じたら親をリ...
おすすめ情報