Требование: Откроется всплывающее окно из родительского окна, и оно должно закрыться, когда фокус из окна потерян. (Это должно происходить, даже если другое окно приложения открыто или находится в фокусе).
Пробный код:
<body onBlur='javascript:window.close();'>
Проблема:
При щелчке внутри тела всплывающего окна оно закрывается.
Совместимость: ie6 и выше, firefox.
Я получил обходной путь от http://pro -viousts.blogspot.com / 2006/10 / неправильное поведение окнаonblur.html
var active_element;
var bIsMSIE;
function initiateSelfClosing() {
if (navigator.appName == "Microsoft Internet Explorer") {
active_element = document.activeElement;
document.onfocusout = closeWnd;
bIsMSIE = true;
}
else { window.onblur = closeWnd; }
}
function closeWnd() {
if (window.opener != null) {
if (bIsMSIE && (active_element != document.activeElement)) {
active_element = document.activeElement;
}
else {
window.close();
}
}
}
<body onload="initiateSelfClosing()">
</body>
Но здесь также есть одна проблема: если на странице есть кнопка печати, и если я нажимаю на печать>, а затем отменяю задание печати, всплывающее окно закрывается.
Может кто-нибудь помочь мне, пожалуйста ...