要求:彈出窗口將從父窗口打開,當窗口的焦點丟失時它應該關閉。 (即使在另一個應用程序窗口打開或聚焦時也會發生這種情況)。如何關閉彈出窗口,當焦點從其中消失時
嘗試代碼: <body onBlur='javascript:window.close();'>
問題: 在彈出的身體內點擊使彈出關閉。
兼容性: ie6及以上版本,firefox。
我得到了解決方法從http://pro-thoughts.blogspot.com/2006/10/incorrect-behavior-of-windowonblur.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>
但這裏也有一個問題是存在的,如果是在頁面的打印按鈕,如果在打印時點擊>然後取消打印作業,彈出窗口正在關閉。
可有一個人幫我請...
謝謝你..但你能幫我用javascript嗎? –
我不確定,但文件沒有onblur事件。 – Pranav