JavaScript — Как перенаправить после загрузки в Chrome

С кодом ниже я пытаюсь изменить страницу браузера.

$pdf->Output($pdf_file_name, 'D');   //Downloading PDF

header("Refresh: 3; url='http://example.com/search-form/'");

Проблема: она работает в FireFox, но не работает в Chrome и IE.

Мне нужно работать в Chrome / IE.

0

Решение

Вам нужно установить заголовки перед выводом, так что просто сделайте это наоборот:

header("Refresh: 3; url='http://example.com/search-form/'");

$pdf->Output($pdf_file_name, 'D');   //Downloading PDF

Чтобы это работало, ваш браузер должен поддерживать этот заголовок «action». Это ужасный хак и просто невозможен (без надлежащей поддержки клиента) таким образом, как определено в http цикла запроса — один запрос — один ответ. Отправка дополнительных заголовков для запуска другого запроса помимо ответа требует поддержки клиента. — Я бы не хотел полагаться на это решение в конце концов.

Твердым решением было бы в первую очередь получить доступ к действию, на которое вы хотите перенаправить, поместить невидимый iframe в отображаемое представление и указать этот источник для вашего действия загрузки, чтобы оно началось, как только действие будет визуализировано.

Вы могли бы сделать намного больше изощренных установок, включая javascript и тому подобное, и больше перенаправлять на различные промежуточные действия, но это довольно просто.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]