В итоге я использовал решение, рекомендованное Примусой
print('Numbers entered: %s' % ', '.join(numList))
. Мое более раннее решение работало на меня в IE. window.event был бы не определен для браузеров кроме IE, поскольку 'событие' глобально определяется в IE, в отличие от этого, в других браузерах. Необходимо было бы предоставить событие в качестве параметра в случае других браузеров. Также это, clientX не определяется для Firefox, мы должны использовать pageX.
Попытка что-то вроде этого.... должно работать на IE и Firefox это...
<html>
<body>
<script type="text/javascript">
window.onunload = function(e) {
// Firefox || IE
e = e || window.event;
var y = e.pageY || e.clientY;
if(y < 0) alert("Window closed");
else alert("Window refreshed");
}
</script>
</body>
</html>
<html>
<body onunload="doUnload()">
<script>
function doUnload(){
if (window.event.clientX < 0 && window.event.clientY < 0){
alert("Window closed");
}
else{
alert("Window refreshed");
}
}
</script>
</body>
</html>
К сожалению, проверка значения события clientY
/ pageY
, как предлагается некоторыми из приведенных здесь ответов, не является надежным способом определить, событие выгрузки
запускается вследствие закрытия страницы пользователем.
Причина clientY
/ pageY
является отрицательной при нажатии кнопки закрытия браузера, потому что кнопка закрытия расположена над верхней частью документа (то есть над пикселем 0), но поэтому кнопка перезагрузки означает, что нажатие на кнопку перезагрузки также приведет к отрицательному значению для clientY
/ pageY
.
Далее по пути проверки координаты x для событие также проблематично, потому что кнопка закрытия браузера не всегда находится в правой части окна (например, это '