Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   opera и onbeforeunload/onunload (https://javascript.ru/forum/events/39253-opera-i-onbeforeunload-onunload.html)

cyber 22.06.2013 18:02

opera и onbeforeunload/onunload
 
открываю в опере окно
window.open(/*...*/)

и нужно отследить закрытие окна,но не onbeforeunload,onunload не срабатывают (только в opera next onunload).
Если какой то способ отследить закрытие в опере?
П.с в общем идея "грязного" хака для оперы есть хочется нормальный способ, как то так)

function undoad () {

 if(win.closed){// win новое окно
  onUnload(); 
  return;
 } 


setTimeout(undload,2000);
}

cyber 22.06.2013 19:49

Опера даже событие onload не ловит, ненавижу оперу..

Deff 22.06.2013 21:59

Цитата:

Сообщение от cyber
Опера даже событие onload

<script type="text/javascript">
function awardsOpen()
{
var msg = new String("");
msg = "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://forum.mybb.ru/style/"+BoardStyle+"/"+BoardStyle+".css\" /><title>Награды пользователя</title>"
msg+= "<style type=\"text/css\">html, body, #pun, #pun-main {background-image: none; margin: 2px 2px; width: 99%;}</style><body onload=\"alert('A')\">";
msg+="<div id=\"pun\" class=\"punbb\"><div id=\"pun-main\" class=\"main\">"
msg+="Привет!";
msg+="<script><"+"/"+"script>";
msg+="</div></div></body></html>";
popup = window.open("", "", "height=300, width=700, top=300, left=300, scrollbars=1")
popup.document.write(msg)
popup.document.close()
return false
}

</script>
<a href="#" onclick="awardsOpen();return false">Клик</a>

cyber 22.06.2013 22:44

Deff, ты не понял, если я onload буду не внутри окна вешать, а так
var new_win = window.open(/**/);
new_win.onload = function (){
//...
}

cyber 23.06.2013 16:45

поймал еще один баг в опере, что свойство closed все будет false если не открыть через клик, появиться сообщение, что окно заблокировано и даже если на него нажать оно все равно будет false после закрытия


Часовой пояс GMT +3, время: 07:11.