疑似非同期フォーム送信を処理するために空のフレームを使用しています。この手法に慣れていない方のために説明すると、フォームの URI がフレーム内で解決され、ユーザー エクスペリエンスが中断されないようnameに、フォームの属性でフレームの属性を参照することをお勧めします。targetaction
ユーザーにフィードバックするには、スクリプトを使用してフォームのloadまたはerrorイベントをリッスンする必要があります。これにより、実質的に UX 全体がスクリプトに依存するようになるため、フレームを挿入し、スクリプトを介してフォームのターゲット参照を追加するだけです。
問題は、フレームがページに挿入されるとすぐにロード イベントをトリガーすることです:デフォルトの動作。
jQuery のoneメソッドとe.stopImmediatePropagation()(こちら) を使用してこれを軽減するか、フレームを挿入してからイベントをバインドします (こちら)。しかし、これらのオプションはどちらも直感に反するものです。間違いのように見えないように、コードにはコメントが必要です。
TL;DR: そもそも iframe を変更または修飾して、挿入時に誤ったロード イベントを発生させないようにする方法はありますか?
私が試したこと
src属性なしsrcに設定しabout:blankます(上記は暗黙的です)srcに設定#srcに設定javascript:void 0src空のデータ URI に設定data:text/plain;base64,;srcdoc空または空に近い文字列に設定