データをダウンロード処理したときにフラグを立てるなど色々処理をしている。
ダウンロード後にリダイレクトかリロードをしたいと思った。
ダウンロードの処理でheaderを使っているのでリダイレクトのLocationが使えない。
そこでJSで別ウインドを開いて、そこにダウンロード処理を渡す。
その処理の後にページをリロードする処理をしてあげるとOK。
$(function(){
// ダウンロードボタン
$('#order_export_btn').on('click', function() {
window.open('<?= $this->Url->build(["controller" => "Hoge","action" => "download"], ['fullBase' => true]); ?>');// URLを開く
setTimeout(reload, 1000);// 1秒後にリロード実行
});
});
// ページリロードの処理
var reload = function(){
location.reload(true);
};
リダイレクトしたい場合はreloadのところをhrefにするとOK
// リダイレクトの処理
var reload = function(){
location.href = "https://zero-one-x.com/";
};
