Страница 1 из 1

Как перехватить событие на закрытие окна

Добавлено: 02 мар 2006, 14:45
Bloody ST@R
Привет всем!

Хочется сделать такую штуку: ЕСть окно, при его закрытие должен появлять диалог Да/Нет. Если нет, тогда закрывать нельзя. Я вроде написал, да не работает :-( Не удается перехватить событие.

Код: Выделить всё

<script language="JavaScript" type="text/javascript">
// Handle close window Event

var errMsg = "Test";

function logout(){

if(confirm(errMsg) == false){
alert("Window closed"); 
window.event.returnValue = false;
}else{ 
alert("Window no closed"); 

} 

}


// Catch window closings and logout
 function o(){

if((window.event.clientX<0) || (window.event.clientY<0)) 
 logout();

}

</script>

<html>
<body onunload="o()">

</body>
</html>

Добавлено: 02 мар 2006, 18:15
alexx
CM. MSDN:

Код: Выделить всё

<HTML>
<HEAD>
<SCRIPT>
function closeIt()
  {
    event.returnValue = "Any string value here forces a dialog box to \
                        appear before closing the window.";
  }
</SCRIPT>
</HEAD>
<BODY onbeforeunload="closeIt()">
    <a href="http://www.microsoft.com">Click here to navigate to 
        www.microsoft.com</a>
</BODY>
</HTML>

Добавлено: 03 мар 2006, 11:29
Bloody ST@R
Спасибо.
Если возможность собщение, которое возникает при закрытие окна, убрать или вместо него свое выводить?

Добавлено: 03 мар 2006, 14:29
alexx
Heт, тoлькo дoбaвить свой тeкcт, тyт:

Код: Выделить всё

event.returnValue = "Blabla!"

Добавлено: 03 мар 2006, 17:43
Oscar
alexx,

а кроме как ИЕ это ещё где-то работает?
ФФ дружно забил на данный event.

Если можно, было бы интересно посмотреть на кроссбраузерный код.

Добавлено: 10 мар 2006, 13:07
alexx
Нет, это MS-фишка. Покапайте DOM-Object Reference, может есть что стандартное...

Добавлено: 10 мар 2006, 14:55
Oscar
alexx, спасибо!

Нашел решение.
Мозила с 1.7, ФФ - работает, но не знаю с какого, ну и ИЕ.

Код: Выделить всё

<HTML>
<HEAD>
<SCRIPT>

window.onbeforeunload = function (oEvent) {
	document.getElementById('close').src = 'close.php';
       oEvent.returnValue = " ";
  }
</SCRIPT>

<!--[if IE]>
<script>
window.onbeforeunload = function () {
	document.getElementById('close').src = 'close.php';
	window.event.returnValue = " ";
  }
</script>
<![endif]-->
</HEAD>
<BODY>
[url=http://www.google.com]google[/url]
<iframe src="blank.html" id="close" style="border:0; height: 0; width: 0;"></iframe>
</BODY>
</HTML>
вот только сам confirm мне мешает,
и не понятно, нажмёт ли пользователь ок или кансел...