下記のようなフレーム構造のページがあります。

<frameset>
<frame src=”top.html” name=”top”>
<frameset>
<frame src=”main.html” name=”main”>
<frame src=”right.html” name=”right”>
</frameset>
</frameset>
ここで、main.htmlより別WINDOW child(名前) を開きます。
で、childからrightへPOSTしたいです。

target=window.opener.parent.right
action=right.html
としてPOSTしてみました。

right.htmlとしてはデータを受け取れますが、
どうしてももとのWINDOW(right)へPOSTできません。(別WINDOWが開いてしまう)
各WINDOWはPOSTする前の状態で、余計なWINDOWが開くのもNGです。
実現する方法を教えてください。
(opener.parent.right.location.hrefなどURLで引数を渡すなどは理由があってNGです)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/03/30 01:38:48
  • 終了:--

回答(2件)

id:Mars No.1

Mars回答回数203ベストアンサー獲得回数202005/03/30 06:52:21

ポイント100pt

URLはダミーです。

単純に

<form action=”right.html” target=”right”>

だけで大丈夫です。

targetで指定したnameのフレーム/ウィンドウがあればそこにpostされますので。


別ウィンドウが開いてしまったのは

”window.opener.parent.right”というnameのフレーム/ウィンドウがないためです。

id:sight No.2

sight回答回数69ベストアンサー獲得回数12005/03/30 09:32:18

ポイント80pt

http://www.hatena.ne.jp/1112114328

人力検索はてな - 下記のようなフレーム構造のページがあります。 <frameset> <frame src=”top.html” name=”top”> <frameset> <frame src=”main.html” name=”main”> <frame src=”ri..

targetの設定をJavaScriptで行っているとして、

・[form].target=”window.opener.parent.right”としている場合

→ターゲットウィンドウに「window.opener.parent.right」という名前のウィンドウが設定されてしまう為、別ウィンドウになってしまう。


・[form].target=window.opener.parent.rightとしている場合

→ターゲットウィンドウの名前として、「window.opener.parent.right」ウィンドウのオブジェクトそのものが設定されてしまう為、別ウィンドウになってしまう。


ですので、解決方法として

[form].target=window.opener.parent.right.name

として、ターゲットウィンドウの名前にはきちんと使いたいウィンドウの名前を渡してあげてください。

id:masashi0316

Marsさんずばりでした、sightさん、勉強になりました。ありがとうございます〜

2005/03/30 10:20:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません