当用户点击它时,我想要一个瞬态窗口关闭它。这适用于Firefox:
var w = window.open(...);
dojo.connect(w, "onblur", w, "close");
但它似乎在Internet Explorer中不起作用。其他一些网站提到了一个特定于IE的“onfocusout”事件,但我无法找到一个连贯的工作示例,我需要它。
Stack Overflow如何说明在失去焦点时让IE浏览器窗口关闭的最佳方式?
我正在使用Dojo,所以如果该库中有一些快捷方式,欢迎提供信息。否则标准的IE调用将是最好的答案。
答案 0 :(得分:2)
我在IE中找到了替代方案。
此:
that.previewWindowAction = function () {
var pw =
window.open(this.link, "preview",
"height=600,width=1024,resizable=yes,"
+ "scrollbars=yes,dependent=yes");
dojo.connect(pw, "onblur", pw, "close");
};
应该像这样写在IE中工作:
that.previewWindowAction = function () {
var pw =
window.open(this.link, "preview",
"height=600,width=1024,resizable=yes,"
+ "scrollbars=yes,dependent=yes");
if (dojo.isIE) {
dojo.connect
(pw.document,
"onfocusin",
null,
function () {
var active = pw.document.activeElement;
dojo.connect
(pw.document,
"onfocusout",
null,
function () {
if (active != pw.document.activeElement) {
active = pw.document.activeElement;
} else {
window.open("", "preview").close();
}
});
});
}
else {
dojo.connect(pw, "onblur", pw, "close");
}
};
原因?
答案 1 :(得分:1)
尝试:
document.onfocusout = window.close();
答案 2 :(得分:0)
您可以尝试将此作为特定于IE的代码块的一部分:
w.onblur = function() { w.close();};