jij*_*mas 5 html javascript popup
要求:将从父窗口打开一个弹出窗口,并且当窗口失去焦点时应将其关闭。(即使打开另一个应用程序窗口或成为焦点,也会发生这种情况)。
尝试过的代码:
<body onBlur='javascript:window.close();'>
问题: 在弹出窗口主体内单击会导致弹出窗口关闭。
兼容性: ie6及以上、firefox。
我从http://pro-thoughts.blogspot.com/2006/10/in Correct-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>
Run Code Online (Sandbox Code Playgroud)
但这里也存在一个问题,如果页面中有一个打印按钮,并且如果我单击“打印”>然后取消打印作业,则弹出窗口将关闭。
有人可以帮我吗...
使用文档进行模糊事件
var win = window.open("URL");
$(window).blur(function() {
win.close();
});
Run Code Online (Sandbox Code Playgroud)