データをダウンロード処理したときにフラグを立てるなど色々処理をしている。
ダウンロード後にリダイレクトかリロードをしたいと思った。
ダウンロードの処理でheaderを使っているのでリダイレクトのLocationが使えない。
そこでJSで別ウインドを開いて、そこにダウンロード処理を渡す。
その処理の後にページをリロードする処理をしてあげるとOK。
1 2 3 4 5 6 7 8 9 10 11 12 |
$(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
1 2 3 4 |
// リダイレクトの処理 var reload = function(){ location.href = "https://zero-one-x.com/"; }; |