C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Javaスクリプトの実行順序

[トピック内 19 記事 (1 - 19 表示)]  << 0 >>

■91159 / inTopicNo.1)  Javaスクリプトの実行順序
  
□投稿者/ 伊達 (1回)-(2019/06/04(Tue) 16:34:46)

分類:[JavaScript] 

Javaスクリプトの実行順序を教えてください。
例えば、上のsubmitが実行完了しないままでも、下のソースが実行された、どういうことでしょうか
引用返信 編集キー/
■91160 / inTopicNo.2)  Re[1]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1833回)-(2019/06/04(Tue) 18:21:54)
No91159 (伊達 さん) に返信
> Javaスクリプトの実行順序を教えてください。
> 例えば、上のsubmitが実行完了しないままでも、下のソースが実行された、どういうことでしょうか

何を聞かれているのか分からないです。具体例を書いてください。

例えば、ユーザー入力の検証を行っいて、検証結果 NG の場合 submit できないようするのはどうするか・・・とか。

あと、何を作っているのか(ASP.NET Web Forms? その他?)と開発環境を書きましょう。
引用返信 編集キー/
■91161 / inTopicNo.3)  Re[2]: Javaスクリプトの実行順序
□投稿者/ 伊達 (2回)-(2019/06/04(Tue) 18:43:27)
伊達 さんの Web サイト
No91160 (WebSurfer さん) に返信
> ■No91159 (伊達 さん) に返信
>>Javaスクリプトの実行順序を教えてください。
>>例えば、上のsubmitが実行完了しないままでも、下のソースが実行された、どういうことでしょうか
>
> 何を聞かれているのか分からないです。具体例を書いてください。
>
> 例えば、ユーザー入力の検証を行っいて、検証結果 NG の場合 submit できないようするのはどうするか・・・とか。
>
> あと、何を作っているのか(ASP.NET Web Forms? その他?)と開発環境を書きましょう。
ご返事ありがとう。
単にJavaScriptです。
1.$(form).submit();
2.window.close();
事象は、submitが実行完了しないままで、画面がクローズされてしまった。
ご回答をお待ちしております
引用返信 編集キー/
■91162 / inTopicNo.4)  Re[3]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1834回)-(2019/06/04(Tue) 20:12:59)
No91161 (伊達 さん) に返信


> 1.$(form).submit();

スクリプトが間違ってませんか?
引用返信 編集キー/
■91163 / inTopicNo.5)  Re[4]: Javaスクリプトの実行順序
□投稿者/ 伊達 (3回)-(2019/06/05(Wed) 10:30:54)
伊達 さんの Web サイト
No91162 (WebSurfer さん) に返信
> ■No91161 (伊達 さん) に返信
>
>
>>1.$(form).submit();
>
> スクリプトが間違ってませんか?
ええ、ただ例えばですね。。。
$("#form").attr("action","xxx.do").submit();
間違ってないに違いない
引用返信 編集キー/
■91165 / inTopicNo.6)  Re[3]: Javaスクリプトの実行順序
□投稿者/ 魔界の仮面弁士 (2193回)-(2019/06/05(Wed) 10:40:30)
No91161 (伊達 さん) に返信
> 1.$(form).submit();
> 2.window.close();
> 事象は、submitが実行完了しないままで、画面がクローズされてしまった。

お使いのブラウザーは何でしょうか?

Internet Explorer や Firefox の場合と、
Chrome や Sarari の場合とで、結果が変わってくるかもしれません。

https://stackoverflow.com/questions/7985930/is-form-submit-synchronous-or-async/7986079
https://stackoverflow.com/questions/8616334/submit-a-form-in-a-popup-and-then-close-the-popup
引用返信 編集キー/
■91169 / inTopicNo.7)  Re[5]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1835回)-(2019/06/05(Wed) 11:46:46)
No91163 (伊達 さん) に返信


> $("#form").attr("action","xxx.do").submit();
> 間違ってないに違いない

それで期待通り動くのですか? そうでなければ間違っているということになりますよ。


引用返信 編集キー/
■91185 / inTopicNo.8)  Re[4]: Javaスクリプトの実行順序
□投稿者/ 伊達 (4回)-(2019/06/05(Wed) 20:49:24)
No91165 (魔界の仮面弁士 さん) に返信
> ■No91161 (伊達 さん) に返信
>>1.$(form).submit();
>>2.window.close();
>>事象は、submitが実行完了しないままで、画面がクローズされてしまった。
>
> お使いのブラウザーは何でしょうか?
>
> Internet Explorer や Firefox の場合と、
> Chrome や Sarari の場合とで、結果が変わってくるかもしれません。
>
> https://stackoverflow.com/questions/7985930/is-form-submit-synchronous-or-async/7986079
> https://stackoverflow.com/questions/8616334/submit-a-form-in-a-popup-and-then-close-the-popup

ありがとうございました、使ってるブラウザは IE11 です。
英語は全然ダメもので、ご容赦ください

引用返信 編集キー/
■91186 / inTopicNo.9)  Re[6]: Javaスクリプトの実行順序
□投稿者/ 伊達 (5回)-(2019/06/05(Wed) 20:53:06)

>それで期待通り動くのですか? そうでなければ間違っているということになりますよ。

動いたのですが、想定の通りではありませんでした。

想定:submitが実行し終わるまで、画面はクローズされません。
実際:ページローディングの最中に、画面はクローズされてしまいました。

ということで、みんなに聞いてみました。。
引用返信 編集キー/
■91187 / inTopicNo.10)  Re[7]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1836回)-(2019/06/05(Wed) 21:14:37)
No91186 (伊達 さん) に返信

> 動いたのですが、想定の通りではありませんでした。

そのコードで動いたというのは自分の想定外でしたが、それはちょっと置いといて・・・

> 想定:submitが実行し終わるまで、画面はクローズされません。
> 実際:ページローディングの最中に、画面はクローズされてしまいました。

その「「submitが実行し終わる」というのは、ブラウザからサーバーに GET なり POST
なりの要求が出ることだと理解しています。

要求が出る前に「画面はクローズされてしまいました」と言ってます? どうやって確認
したのですか?

Fiddler などのキャプチャツールを使ってようきゅが出てないことを確認しましたか?
(スクリプトが間違っていると要求は出ないでしょうが、正しく要求が出るスクリプトが
書かれているとしての話ですが)



引用返信 編集キー/
■91191 / inTopicNo.11)  Re[5]: Javaスクリプトの実行順序
□投稿者/ 伊達 (6回)-(2019/06/05(Wed) 22:10:52)

>その「「submitが実行し終わる」というのは、ブラウザからサーバーに GET なり POST
なりの要求が出ることだと理解しています。
認識あってます。



>要求が出る前に「画面はクローズされてしまいました」と言ってます?
仰ったとおりです。

>どうやって確認したのですか?
サーバ側の最後にコンソールにログが出るはずです。ログが出ない状態でブラウザがクローズされてしまいました。

>(スクリプトが間違っていると要求は出ないでしょうが、正しく要求が出るスクリプトが
書かれているとしての話ですが)
認識あってます。
window.close();のコードを削除したら想定通り動いました。
引用返信 編集キー/
■91193 / inTopicNo.12)  Re[6]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1837回)-(2019/06/05(Wed) 22:34:47)
No91191 (伊達 さん) に返信

> >要求が出る前に「画面はクローズされてしまいました」と言ってます?
> 仰ったとおりです。
>
> >どうやって確認したのですか?
> サーバ側の最後にコンソールにログが出るはずです。ログが出ない状態でブラウザがクローズされてしまいました。

そのログって何だか書いてないので分かりませんが、何にせよサーバー側のログの話で
すよね?

要求は出たということですのでクライアント側での JavaScript の処理は終わっている
はず。どうやったのか分かりませんが、そこは確認して間違いないのですよね。

サーバー側とクライアント側で行われる処理が、質問者さんの頭の中でゴッチャになっ
ているのでは?

タイトルの「Javaスクリプトの実行順序」からすると、そもそもがクライアント側だけ
の話に思えますけど、であれば実行順序はあなたが書いたコードの上から順番では?
引用返信 編集キー/
■91210 / inTopicNo.13)  Re[7]: Javaスクリプトの実行順序
□投稿者/ 伊達 (7回)-(2019/06/06(Thu) 10:35:05)
大体わかりました、ありがとうございました。
引用返信 編集キー/
■91212 / inTopicNo.14)  Re[7]: Javaスクリプトの実行順序
□投稿者/ PANG2 (297回)-(2019/06/06(Thu) 11:04:46)
2019/06/06(Thu) 11:28:15 編集(投稿者)

No91186 (伊達 さん) に返信
> 想定:submitが実行し終わるまで、画面はクローズされません。
> 実際:ページローディングの最中に、画面はクローズされてしまいました。

submit を実行するとページ遷移が完了するまで次の行が実行されないという想定ですか?
例えば、以下はどういう想定ですか?

<form method="get" action="https://www.google.com/search">
<input name="q" value="aaa">
</form>
<input type="button" onclick="document.forms[0].submit();alert('after submit');">


引用返信 編集キー/
■91215 / inTopicNo.15)  Re[8]: Javaスクリプトの実行順序
□投稿者/ 伊達 (8回)-(2019/06/06(Thu) 12:29:47)
No91212 (PANG2 さん) に返信
> 2019/06/06(Thu) 11:28:15 編集(投稿者)
>
> ■No91186 (伊達 さん) に返信
>>想定:submitが実行し終わるまで、画面はクローズされません。
>>実際:ページローディングの最中に、画面はクローズされてしまいました。
>
> submit を実行するとページ遷移が完了するまで次の行が実行されないという想定ですか?
> 例えば、以下はどういう想定ですか?
>
> <form method="get" action="https://www.google.com/search">
> <input name="q" value="aaa">
> </form>
> <input type="button" onclick="document.forms[0].submit();alert('after submit');">
>
>

ご回答ありがとうございました。
> submit を実行するとページ遷移が完了するまで次の行が実行されないという想定ですか?
そうです

> 例えば、以下はどういう想定ですか?
www.google.comでメッセージがポップアップされる想定です、そういえば、たぶん無理ですよね orz セキュリティルールも違反のようです。。。
引用返信 編集キー/
■91217 / inTopicNo.16)  Re[9]: Javaスクリプトの実行順序
□投稿者/ WebSurfer (1841回)-(2019/06/06(Thu) 12:43:47)
No91215 (伊達 さん) に返信

最初に、

> 何を聞かれているのか分からないです。具体例を書いてください。
> 例えば、ユーザー入力の検証を行っいて、検証結果 NG の場合 submit できないようするのはどうするか・・・とか。

と聞きましたが、それに応えて具体例(全体的なやりたいことのシナリオ・ストーリー)
を書いてはいかがですか?

先の質問者さんの返事は、

> 単にJavaScriptです。

とのことでしたが、そうではなさそうですし。

XY 問題(X が本来やりたいことで、それを実現するために質問者さんが Y という手段を
考えて、Y に関する質問をしたが、Y は X の解決になってないので、Y の答えをもらって
も解決にならない)になってないでしょうか?
引用返信 編集キー/
■91220 / inTopicNo.17)  Re[9]: Javaスクリプトの実行順序
□投稿者/ PANG2 (298回)-(2019/06/06(Thu) 13:02:01)
2019/06/06(Thu) 14:25:12 編集(投稿者)
2019/06/06(Thu) 13:02:24 編集(投稿者)

No91215 (伊達 さん) に返信
>>例えば、以下はどういう想定ですか?
> www.google.comでメッセージがポップアップされる想定です、そういえば、たぶん無理ですよね orz セキュリティルールも違反のようです。。。

実際、動かしてみれば分かりますが、onclickを抜けなければsubmitは実行されません。
つまり、alert→submitの順で実行されます。

本題のsubmit→closeの順で行うにはタイマを使うとか。


<form method="get" action="https://www.google.com/search" target="_blank">
<input name="q" value="aaa">
</form>
<input type="button" onclick="
document.forms[0].submit();
setTimeout(function () { window.close();}, 100);
">
引用返信 編集キー/
■91239 / inTopicNo.18)  Re[10]: Javaスクリプトの実行順序
□投稿者/ 伊達 (9回)-(2019/06/07(Fri) 22:31:59)
No91220 (PANG2 さん) に返信
> 2019/06/06(Thu) 14:25:12 編集(投稿者)
> 2019/06/06(Thu) 13:02:24 編集(投稿者)
>
> ■No91215 (伊達 さん) に返信
> >>例えば、以下はどういう想定ですか?
>>www.google.comでメッセージがポップアップされる想定です、そういえば、たぶん無理ですよね orz セキュリティルールも違反のようです。。。
>
> 実際、動かしてみれば分かりますが、onclickを抜けなければsubmitは実行されません。
> つまり、alert→submitの順で実行されます。
>
> 本題のsubmit→closeの順で行うにはタイマを使うとか。
>
>
> <form method="get" action="https://www.google.com/search" target="_blank">
> <input name="q" value="aaa">
> </form>
> <input type="button" onclick="
> document.forms[0].submit();
> setTimeout(function () { window.close();}, 100);
> ">

わかりました、ありがとうございました。
引用返信 編集キー/
■91240 / inTopicNo.19)  Re[8]: Javaスクリプトの実行順序
□投稿者/ 伊達 (10回)-(2019/06/07(Fri) 22:32:34)
皆様 ありがとうございました
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ