- PR -

子ウィンドウでjavaScriptのsubmit()ができません。

1
投稿者投稿内容
beamer
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-16 20:36
お世話になります。
いろいろ調べてみたのですが、お手上げ状態になっているので
どなたか解決の糸口でもよいのでお教えください。

現在、親画面で検索項目を表示し、子画面にて検索結果を表示する。という機能を作成しています。
その際、子画面を一定時間ごとにリロードするため、
再度javaScriptでsubmitをしたいと考えています。

親画面(oya)でsubmit()を実行する時は、
function win_open() { //v2.0
 w = window.open('about:blank', 'koWindow');
 //submitで画面遷移する対象画面を指定
document.form1.target = 'koWindow';
document.form1.submit();
}
を実行すれば、正常に子画面が開かれます。
その後、子画面にて、
 function targetForm(){
document.form1.submit();
}
という関数を実行すると、javaScriptエラーが発生し、
使用できないプロパティ、もしくはメソッドです。とエラーが出ます。
 function targetForm(){
window.opener.document.form1.submit();
}
とすれば、submit自体は成功するのですが、
中身の情報が親画面の情報のため、正常にリロードできない状態です。

最終的に子画面の情報をsubmit()できれば問題ないのですが、
何か解決策がありましたら教えていただきたいです。
また、そもそも不可能等の助言もありましたら、していただけると幸いです。

よろしくお願いします。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2004-12-16 21:31
引用:

現在、親画面で検索項目を表示し、子画面にて検索結果を表示する。という機能を作成しています。


どうゆう処理をされているのか良く理解できないのですが
http://www.friendlysw.com/books/wmjp/ch7/07/DataGridFiltering.aspx
のように子画面から親画面を操作したらどうでしょうか。


_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
beamer
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-17 09:20
Access様 返信ありがとうございます。
質問の仕方がわかりずらく申し訳ありません。

親画面から子画面を表示して、
仮に親画面が消滅しても、子画面だけで独立して情報を保持し、リロードできる仕組みを作りたいと考えています。
そのため、親画面で検索、子画面で検索結果 を各々表示するという点は変えれないんです。

親画面のformをjavaScriptでsubmit()することはできますし、
<html:submit>で、ボタンを押してのsubmitもできます。
が、子画面のformをjavaScriptでsubmit()する時だけエラーとなるので、
対処に困っています。

親画面:検索画面(機関のコードを選択する画面)
    ボタンをonClickすることで、window.open()し、子画面を表示させます。
子画面:検索結果画面(機関のコードから検索して、結果表示)
    hiddenで選択された機関のコードを保持しています。
    また、
var timerId = setTimeout("targetForm()", 100000);
を設定しており、一定時間で再submit()をしたいと考えています。
    その際、
     function targetForm(){
      document.form1.submit();
     }
    を呼び出すと、エラーが出る状況です。
  親画面と子画面で同じformを使っています。

  何かアドバイスがありましたら、改めてよろしくお願いします。
taro
ぬし
会議室デビュー日: 2003/10/20
投稿数: 316
投稿日時: 2004-12-17 09:41
子画面にはform1というFORMは存在するのですよね?
beamer
会議室デビュー日: 2004/12/16
投稿数: 3
投稿日時: 2004-12-17 09:51
taro様 返答ありがとうございます。
子画面には、form1が存在しています。
結果表示の際、form1から、情報を取り出して、表示しています。

<html:form action="/****/****action01.do" styleId="form1">
<table><tr><td>
<htmlx:write name="form1" property="selectKikan"/>
・・・
</td></tr></table>

といった具合です。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2004-12-17 14:07
親画面子画面両方ASP.NETですか?
実行時にIEに表示されているhtmlをソース表示してみて。
単純な、目的のことだけを行うJavaScriptの入ったhtmlファイルを親と子の2つ作成して、それでJavaScriptの動作確認を行ってみてはいかが。

_________________
たつごろー
codeseek
こみゅぷらす
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-12-18 06:34
> <html:form action="/****/****action01.do" styleId="form1">
 なんか、場所間違えてません?ここ、.NET Frameworkですよ?この拡張子、Strutsじゃない?

 まぁ、それはそれで一つとして。
 なんのために「再読込」するのでしょう?更新されたデータが表示できるように、ですよね?であるなら、もう一度“検索する”必要があるのではないですか?検索するための条件を、子画面に持ってきていますか?持ってきていないなら、子画面を提出しても無駄ですよね?

_________________
1

スキルアップ/キャリアアップ(JOB@IT)