![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
処理概要:親ウィンドウからボタンクリック時にjavascriptのみで
子ウィンドウを作成し、遷移させた後、子ウィンドウの
フォームをサブミットする。
-------以下ソース--------
var url = "/index.html";
hWin=window.open("","");
window.hWin.location.href=url;
setTimeout(a,10000);
function a(){
window.hWin.document.form.submit();
// window.hWin.document.form.name.value = "住友";
// window.hWin.document.form.button1.click();
}
* index.html にはformというフォームがあり、nameという
テキストボックスとbutton1 というボタンをフォーム内に
持っているとします。
以上のような簡単なものですが、7行目のsubmitでこけます。
window.hWin.document.formがないようでヌルポになります。
親から子ウィンドウのサブミットをjavascriptだけで制御
できないでしょうか。
また、できればコメントアウトしているところ、
DOM要素を指定して値をテキストボックスに入れたり
フォームをボタンによりクリックしてサブミットもしたいです。
ちなみに、setTimeout を利用しているのは、遷移が終わり、子ウィンドウの要素が確実に作成されている状態にするためです。
また、遷移先にSSLを設定している部分と設定していない部分があり、javascriptの途中で"ここに遷移していいですか?"みたいなダイアログが表示されます。"混雑しているページの処理"をインターネットオプションから"有効"にする(ダイアログを表示するではなく)と表示されないのですが、奨励されないので
他にいい方法はないでしょうか。
No.2ベストアンサー
- 回答日時:
No.1です。
調べて見たら、こんな感じでいいみたい。
----- main -----
<html>
<head>
<script type="text/javascript">
var url = "/index.html";
hWin=window.open("","");
window.hWin.location.href=url;
function a(){
var f=hWin.document.forms['form1'];
f.name1.value = "住友";
f.button1.click();
f.submit();
}
</script>
</head>
<body>
テスト
</body>
</html>
----- index.html -----
<html>
<head>
<script type="text/javascript">
window.onload=function(){window.opener.a();}
</script>
</head>
<body>
<form name="form1" method="" action="/test.cgi">
<input type=text name="name1" >
<input type="button" name="button1" value="hoge" onclick="alert('Pushed!');">
</form>
</body>
</html>
No.1
- 回答日時:
親ウインドウから、ターゲット指定して非表示のフォームをサブミットしても同様の結果を得られるとは思いますが・・
form、nameというnameが悪さをしている可能性があります。
IEはそれを修正すれば作動しました。
それでも、ブラウザによってはDOMが解釈されないみたいで、試行錯誤してみましたが、こんな感じでどうでしょう? (IE6、Opera8のみ確認)
----------- Main --------------
var url = "/index.html";
hWin=window.open("","");
window.hWin.location.href=url;
function a(f){
f.name1.value = "住友";
f.button1.click();
f.submit();
}
----------- index.html --------------
<html>
<head>
<script>
window.onload=function(){
window.opener.a(document.form1);
}
</script>
</head>
<body>
<form name="form1" method="" action="/test.cgi">
<input type=text name="name1" >
<input type="button" name="button1" value="hoge" onclick="alert('Pushed!');">
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP php ログイン 1 2022/11/01 00:24
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
submit時に違うページに飛びたい
-
親ページからインラインフレー...
-
リンクをクリックした時にform...
-
複数のフォームを一括で送信す...
-
Javascript
-
submitをボタン以外にするには
-
1アクションでPOST・GET、両方...
-
HTMLのoptionタグ部分に画像を...
-
プルダウンメニュー項目のフォ...
-
長文のmailtoの使い方
-
CGI動作後に元のページに戻る方法
-
Rails のコンボボックス(selec...
-
フォームに入力した値をURLに付...
-
ラジオボタンについて
-
<SELECT>タグでの selected 状...
-
1つのformで複数のactionを実...
-
複数のプルダウンからリンクす...
-
mailtoによる送信ができない
-
フォームのテキストボックス内...
-
検索バー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
入力フォームの javascript で ...
-
画像をボタンのようにフォーカ...
-
[onClick]ボタンを押すことで入...
-
パスワードをIPする際見えな...
-
JavaScript の 「showDialog」
-
親ページからインラインフレー...
-
JQueryのpostメソッドでファイ...
-
JavaScript 超初心者です。 Doc...
-
JavaScriptを使ったらサーブレ...
-
submit時に違うページに飛びたい
-
ダウンロードと同時に新しいペ...
-
チェックボックスをチェックし...
-
指定したデータを別ページフォ...
-
Mac(Safari)でのSendkyesコマン...
-
スマートフォンで自作javascri...
-
google翻訳 apiで pdfを翻訳す...
-
チェックボックスで、チェック...
-
検索結果画面の値の引継ぎとr...
-
商品ページのフォームのテキス...
-
a.href の href を有効か無効に...
おすすめ情報