Событие размытия - это просто хрупкий обходной путь, который может работать в браузере или нет.
Событие blur
означает, что что-то теряет фокус. Возможно, браузер Firefox (помимо прочего) действительно размывает ссылку, по которой вы щелкнули, но все остальное может размывать и эту ссылку (изменение вкладки, щелчок по экрану загрузки и т. Д.). Это то, что вы, возможно, не хотите.
И поскольку HTTP является протоколом без состояния, мы не можем знать на стороне клиента, когда это будет завершено без помощи сервера. И вы не можете полагаться на то, что JS обнаружит это, поскольку файл загружается «на другой вкладке», в другом контексте, к которому у вас нет доступа.
Единственное решение, которое я могу себе представить (и других, как кажется ): Когда начинается загрузка, запускайте интервал JS, который регулярно (примерно каждые 500 мс или около того) проверяет сервер на загрузку статус. На стороне сервера вы должны определить загрузку для пользователя при ее запуске и ответить на статус обратно клиенту, когда его спросят. Как это работает, зависит, конечно, от серверной среды и языка программирования, который вы используете. Я знаю, вы можете заставить его работать в PHP, но я не знаю всех других языков.
Кстати: я бы назвал «загрузочный экран» «индикатор загрузки», потому что загрузочный экран (или заставка) - это картинка, которая отображается один раз перед загрузкой программного обеспечения (по крайней мере, на моем компьютере / мозге).