質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

Q&A

0回答

954閲覧

FirefoxにおけるFormの自動POSTによる無限ループ

sugamat

総合スコア2

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

0グッド

0クリップ

投稿2021/06/23 16:23

編集2021/06/24 03:12

ウェブサイト(html,php,javascript)を作成しております。
ブラウザチェックを行った所、Chrome、Safari、Edgeで確認した所、問題ありません。
しかし、Firefoxでは、WindowsとMacの両方で無限ループような現象が発生します。
無限ループと言っても、止まらない時もあれば、たまに止まる時もあります。
考えられる原因について、アドバイスを頂けないでしょうか?


2021年6月24日加筆修正

ウェブサイトの概要
ファイルをアップロードするページです。

通常は、formを利用し、

  1. ファイル選択
  2. ファイル送信
  3. ページ移動

の手順になるかと思います。

このページでは、2個のformがあり、javascriptを利用し、

  1. ファイル選択後、自動でファイル送信し、隠れiframeにページ読み込まれます。
  2. iframe読み込み終了後、自動でもうひとつのformが送信され、ページが移動します。

コード (debug.php)

<!DOCTYPE html> <html> <!-----------------------------------------------------------------------------> <head> <title>デバッグ用</title> </head> <!-----------------------------------------------------------------------------> <body> <!--idはjavascriptで使用--> <!--1つ目のフォーム--> <form id='upload'  method = 'post'  action = '../upload.php'  enctype = 'multipart/form-data'  target = 'hidden_iframe' autocomplete = 'off'> <!-- ファイルアップロード時に ページ遷移させないため upload.phpを隠れフレームに読み込む multipart/form-dataは、様々なファイルに対応 formのtarget属性は、iframeのname属性と一致させる -->

<input id='button' type='file' name='upload[]'>
<!--nameは変数名のようなもの、phpの$_FILESからアクセスするのに必要-->

</form> <!-- 非表示のiframe upload.phpを読み込む際 ページ遷移させないための隠れフレーム iframeのname属性 = formのtarget属性 iframeへの読み込み完了でイベント発生 --> <iframe id='hidden_iframe' name='hidden_iframe'></iframe> <!--2つ目のフォーム--> <form method='post' action='debug.php'> <input id='hidden_button' class = 'hidden_button' type = 'submit' name = 'hidden_button' value = '隠れボタン'> </form> <!-----------------------------------------------------------------------------> <!--javascript--> <script> const upload = document.getElementById('upload'); const selectFile = document.getElementById('button'); const hiddenButton = document.getElementById('hidden_button'); const hiddenFrame = document.getElementById('hidden_iframe'); selectFile.addEventListener('change', function(){ upload.submit(); console.log('ファイルが送信されました'); }); // iframeにupload.phpの読み込みが完了しても // ファイルのアップロードが完了してるとは限らない hiddenFrame.addEventListener('load', function(){ hiddenButton.click(); console.log('アップロードが完了しました'); }); </script> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikadzuchi

2021/06/23 16:38

とりあえずコードを出してください。
sugamat

2021/06/24 03:13

アドバイスありがとうございます。 問題と思われるコードの部分を取り出しました。それでもまだ長いですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問