JavaScriptで子ウィンドウを開いて、そこの<textarea>にデータをセットしたいのですがうまくいきません。
親は
<input type="button" value="Out" onClick="output()" /><br />
:
:
function output()
{
hWin=window.open("childwindow.htm", "test", "width=400,height=400");
hWin.document.op.out.value="MNL";
}
子(childwindow.htm)は
:
<form name="op">
<textarea name="out">
です。
No.7ベストアンサー
- 回答日時:
試しに・・・
clearTimeout(parent.tid)
の行をけずってみてください。
windowが開いた後MNLとかきこまれるのは
一緒ですが、textareaの値を手で書き換えても
すぐ上書きされます。
これはsetIntervalが、連続して同じ作業を
くりかえすからです。
if(win.document.op.out)でオブジェクトが定義
された時点で、MNLをかきこみ、連続作業を
clearTimeoutで「もうやめていいよ」と宣言
しているというフローです
ご指摘のとおりclearTimeout(parent.tid)をコメントアウトしましたが、状況はかわらずでした。(上書き後すぐ元の値に戻るというのは確認できましたが。)
実は親ウィンドウが最初のプロセスでGoogleMapの地図をダウンロードしているのですね。それで、子ウィンドウが開くのに時間がかかり、うまくいかないようです。実際は、Mapを表示させてから子ウィンドウを開く使い方が普通だとは思うのですが、100%そうともいえないので苦労しています。
No.8
- 回答日時:
>実は親ウィンドウが最初のプロセスでGoogleMapの地図をダウンロードしているのですね。
それで、子ウィンドウが開くのに時間がかかり、うまくいかないようです。最初に子ウインドウを開き、マップダウンロード後に子ウインドウへ書き込んでは?
もしくは別途イベントハンドラ(onFocus,onLoad等)で値を設定するようにするのは?
No.6
- 回答日時:
まぁこんな感じにすると動いているっぽいのですが
ウィンドウが立ちあがらないとループすると言う
つくりはあまりよろしくないかもしれませんね。
<input type="button" value="Out" onClick="output()" /><br />
<script language="javascript">
function output(){
hWin=window.open("childwindow.htm", "test", "width=400,height=400");
tid=setInterval("repeatFunc(hWin)",100)
}
function repeatFunc(win){
if(win.document.op.out){
win.document.op.out.value="MNL"
clearTimeout(parent.tid)
}
}
</script>
具体的なコードありがとうございました。setInterval("repeatFunc(hWin)",100)ではうまくいかなかったので、試しに1000にしてみればOKでした。
結局は、環境によりけりということで、最初のsetTimeoutを使う例よりはマージンを小さくできるということなのでしょうか?
No.5
- 回答日時:
>この値というのは、例えばインターネットへの接続環境によって違うということでしょうか?
>だとすると、どれくらいの値を取るのが普通なのでしょうか?
ご推察の通り、接続環境や接続しているサーバーの負荷状況とかによっても違ってくると思います。
どれくらいが適当かというのは一概に言えません、場合によっては10分以上サーバーからレスポンスがないかもしれませんし・・
setTimeout や setInterval を使って
間けつ実行してみてOK(読み込めるようになった)だったら
clearTimeout や clearInterval で待ちを解除する
とかでやるのかなと思いますが、
あまり長い時間待てる閲覧者もいないでしょうし、
適当な時間でタイムアウトということにしてもいいんじゃないでしょうか。
それは、ページの作成者の考え次第だと思います。
適当な時間でタイムアウト・・・。
ただ、それでも、子ウィンドウは表示されていて、データがセットされないという結果になるので、サイトの利用者は「あれ?」ってことになっちゃうと思うんですよね。
いっそうのこと、子ウィンドウが表示されなきゃ、あタイムアウトかとわかるとは思うのでしょうけど。
No.4
- 回答日時:
つまり、オブジェクトが作られる前にセットしよう
としているからだめなわけで、ブラウザの
busyを見る方法もありますが、ブラウザ依存に
なる可能性も有り、総じてウェイトをかける方法が
妥当だという経緯です。
No.2
- 回答日時:
とりあえず以下にしてみてください
<input type="button" value="Out" onClick="output()" /><br />
<script language="javascript">
function output(){
hWin=window.open("childwindow.htm", "test", "width=400,height=400");
setTimeout('hWin.document.op.out.value="MNL"',0)
}
</script>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
クリックさせたいが、click()が...
-
if構文
-
マウスをかざすとおこるイベント
-
クリックでテーブル内の背景色...
-
JavaScriptの勉強をしているの...
-
追加ボタンを押した際に ok ボ...
-
javascriptのちょっとした動作...
-
【UWSC】HTML内のある部分を抽...
-
name属性のないformタグの、中...
-
テキストボックスの背景色について
-
VBScriptでpingを実行(ブラウザ...
-
【Javascript】formで取得した...
-
一覧から選択した行の行番号を...
-
xml 読み込みランダムで表示す...
-
フォームのチェックボックスの...
-
読み込み中に「Now Loading」を...
-
複数のプルダウンを1つにまとめ...
-
Javascript DOM?
-
jquery datatablesを使用 イン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onchangeイベントを強制的に発...
-
追加ボタンを押した際に ok ボ...
-
クリックさせたいが、click()が...
-
onclickが動作しない
-
ボタンかリンクをクリックする...
-
javaScriptの変数をJavaの変数...
-
formのfileの値をhiddenでも持...
-
JSのボタンを複数う使うには
-
JavaScriptのfileオブジェクト...
-
innerHTML内では改行は禁止?
-
開いた子ウィンドウにあるボタ...
-
BackSpaceしたい(QNo.2734284の...
-
VB.NETで<Input>タグ、<text...
-
オンクリックで現在時刻の取得→...
-
JQueryでfunctionに引数としてI...
-
複数のテキストボックスの値の...
-
onClickがinput type="image"だ...
-
クリック→テキストボックスに追加
-
Javascriptで'(シングルクォー...
-
テキストフィールド未入力の場...
おすすめ情報