![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
処理概要:親ウィンドウからボタンクリック時に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ランキング
-
入力フォームの javascript で ...
-
画像をボタンのようにフォーカ...
-
指定したデータを別ページフォ...
-
チェックボックスをチェックし...
-
[onClick]ボタンを押すことで入...
-
a.href の href を有効か無効に...
-
submitをボタン以外にするには
-
1つのformで複数のactionを実...
-
送信ボタン押下時に値が未入力...
-
1アクションでPOST・GET、両方...
-
formなしでPOSTデータを送信・受信
-
UTF-8 コードでのmailtoの文字化け
-
同じnameのhiddenで別々の内容...
-
リンクをクリックした時にform...
-
フォーム要素以外にもname属性...
-
プルダウンメニューでインライ...
-
インフォシーク翻訳リクエスト...
-
会員登録フォームの作り方を教...
-
checkboxを「変更不可」にでき...
-
HTMLファイルに、文字を書き込...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JavaScript 超初心者です。 Doc...
-
入力フォームの javascript で ...
-
親ページからインラインフレー...
-
[onClick]ボタンを押すことで入...
-
画像をボタンのようにフォーカ...
-
チェックボックスで、チェック...
-
子ウィンドウの操作
-
ボタンで、リンクを、別ウィン...
-
submit時に違うページに飛びたい
-
JavaScript の 「showDialog」
-
Mac(Safari)でのSendkyesコマン...
-
ブラウザの履歴を消す/アクセ...
-
submitをボタン以外にするには
-
送信ボタン押下時に値が未入力...
-
複数のフォームを一括で送信す...
-
1アクションでPOST・GET、両方...
-
フォーム要素以外にもname属性...
-
URL パラメータを使ってフォー...
-
リンクをクリックした時にform...
-
1つのformで複数のactionを実...
おすすめ情報