ユーザーがAJAXを介して送信された電子メール確認フォームを記入した後、AJAXコールの応答があれば、現在のブラウザウィンドウで強制的にダウンロードを開始したい成功です。 "download_email_button" 一度JS/jQueryのは、次のようになりますクリックするAjaxの成功時に.mp3または.zipファイルを強制的にダウンロードする
<form id="form_download_email" method="POST" action="music_email_verification.php">
<input id="download_email" type="text" tabindex="1" /> <br/>
<a href="javascript:void(0);" id="download_email_button">
Download!
</a>
</form>
:よう
電子メールの確認フォームが見えます
$("#download_email_button").click(function() {
var action = $("#form_download_email").attr('action');
var form_data = {email: $("#download_email").val()};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(response){
if(response == 'success'){
window.location.assign('URL to .mp3 or ZIP');
}
}
});
});
応答を== '成功' のブロックが入力されます今のところ、私が見つけた唯一の解決策は、ポップアップウインドウ(window.open - これはChromeによってブロックされる)を起動せずにファイルを強制的にダウンロードすることです。上記のようにwindow.location.assignを使用することです。これは、JSを介してファイルを強制的にダウンロードするという正しい方法ですか?
しかし、window.location.assignメソッドを使用すると、1つのファイルしかダウンロードできません。また、2つのmp3で2つの行を挿入しようとすると、動作しません。 AKA:私は、ユーザーが.MP3/.zipファイルをダウンロードする必要がフォームを送信した後、別のリンクをクリックする必要がありますする必要はありません
window.location.assign('http://song1.mp3');
window.location.assign('http://song2.mp3');
、私はJS/jQueryの中でそれをすべて行うために試してみたいです。
最後の方法は、hrefがmp3を指し示していたドキュメント上の2つの隠れたタグをブラウザがクリックするように応答== '成功'でした。ただし、jcleryのonclick属性だけでは、「クリックのたびにリンクのデフォルトアクションをトリガーできないという問題があるようです。
jsでこれを行う必要がありますか?これを行う方法がない場合、私はPHPのようなものを試すべきですか?
現在のやり方に関する提案や、複数のmp3ファイルをダウンロードする方法のアドバイスが参考になります。
オープンおそらくダウンロードに新しいタブにはiframeのソースを設定するには、URLごとのiframeを作成しますか? –