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