Поскольку страница заблокирована , вы ничего не можете сделать с JavaScript, потому что она также заблокирована.
Но что вы пытаетесь сделать? Вы пытаетесь каким-то образом зарегистрировать тот факт, что пользователь загружает файл? Если да, есть лучшие способы сделать это, и они на стороне сервера. Используйте некоторый серверный язык сценариев для обслуживания файла и зарегистрируйте тот факт, что он был загружен.
Если это не то, что вы пытаетесь сделать, то единственный способ - использовать либо onclick
по ссылке, либо onunload
/ onbeforeunload
, но они менее надежны, и я уверен, что вы найдете полностью различное поведение в разных браузерах.
На самом деле, теперь, когда я об этом думаю, есть еще один способ, но он очень грязный . Идея состоит в том, чтобы установить интервал для запуска каждую секунду и проверить, если между двумя запусками прошло больше секунды. Что-то вроде:
var lastTime = new Date().getTime();
function checkTime() {
var curTime = new Date().getTime();
if (curTime - lastTime > 1100) { // 1100 because there might be small browser lags
// do something after the dialog appeared and the user did something with it
}
lastTime = curTime;
}
setInterval(checkTime, 1000);
Обратите внимание, что существуют браузеры (я думаю, что это пример Chrome), которые не блокируют страницу, пока открыто это диалоговое окно, поэтому это может не работать. Обязательно перепроверьте все, если вы собираетесь использовать это.
Мне нужно пойти принять душ.