1

管理者の要求により、ユーザーの電子メール クライアントを開き、ボタンをクリックしてフォームを送信する必要があります。私は最初に持っていた

window.location = "mailto:email@example.com";

送信入力のクリック イベントへのコールバックとして使用されますが、これは機能しません。フォームがすぐに送信されるようです。

を使用window.openしても機能しますが、望ましくない空白のウィンドウが作成されます。

また、次のようにフォームの送信を防止して遅延させるというアイデアもありました

window.location = "mailto:personalcounselor@gleim.com";
setTimeout(function () { 
    $(this).closest('form').trigger('submit');
}.bind(this), 1000); 
e.preventDefault();

これも機能しますが、大ざっぱに思えます。

フォームを送信し、同時に mailto リンクを開く方法はありますか?

4

1 に答える 1

2

これが機能するかどうかはわかりませんが、少し調整するだけで機能し、目的の結果が得られるはずです(コメントに収まるには長すぎました。機能しない場合は喜んで消して!);

$("form").on("submit", function() {
     window.onbeforeunload = function() {
         window.location = "mailto:email@example.com";
     };
});

簡単に言えば、フォームが送信されたときにonbeforeunload、場所を mailto に変更するイベントを設定します。このようにすると、ユーザーが移動したときではなく、フォームが送信された場合にのみ mailto が開くと思います。

これがうまくいくかどうか、またはそれがどれほどハックであるかはわかりませんが、2セントを投入すると思いました!

アップデート

フォームの送信時に、フォームの値を含む JavaScript からの mailto

これは機能しているようで、他の人によって検証されています。

$("input[type=submit]").click(function(){
     window.location.href = "mailto:email@example.com";
});
于 2013-05-20T00:54:06.993 に答える