ポップアップのコンテキストに依存する可能性がありますが、従来のポップアップを使用するのではなく、ページ内のライトボックスやその他のajaxベースの表示ツールなどの侵襲性が低く広告がブロックされやすいものを検討する場合があります。送信ボタンのクリックイベントからライトボックスをトリガーし、メッセージを表示して、閉じるか確認時にフォームを送信できます。
一部の(一般的ではない)ユーザーがJavaScriptを無効にしている可能性があるため、フォームの結果ページの表示がJavaScriptに依存しているソリューションは避けてください。上記のように実装されている場合、そのようなユーザーはポップアップを見逃しますが、フォームは引き続き通過します。
jQueryを使用して、MODxがフォームの生成に使用するphpコードを変更せずにこれを実装し、代わりにxhtmlヘッダーにjavascriptを配置して、フォームの送信ボタンにクリックイベントを添付できます。例えば:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="/colorbox/jquery.colorbox.js"></script>
<script type="javascript">
$("#FormID.input[type=submit]").click(function(e) {
/* prevent form from submitting */
e.preventDefault();
e.stopPropagation();
/* on colorbox close, submit form */
$(document).bind('cbox_close', function(){
e.submit(); // submit the form on close
});
/* open the colorbox */
.colorbox({href:"http://example.com/url1"});
});
</script>
ここではColorBoxを使用しましたが、他のライトボックスの代替案にも同じ考え方が当てはまるはずです。私はこれをブラウザでテストしなかったので、必要に応じてテストして適応させてください。