[英]window.blur() - what am I doing wrong
我试图使窗口打开时无法聚焦,情况是:
我有一个带按钮的主窗口,单击该按钮后会打开一个新窗口,并自动调用blur()方法,因此该窗口应位于背景中,但没有任何反应,我在Firefox和Chrome的最新版本中进行了尝试。
function openWindow() { var exampleWin = window.open('example.html','Example','width=500,height=500'); exampleWin.blur(); } // and the HTML: <button onclick="openWindow();">Open Window</button>
代码是如此简单,但是我不确定为什么它不起作用,我什至查看了MDN文档,一切似乎还可以。
-编辑-
最终,我找到了一种使用一些不同方法的解决方案:
function openWindow() {
/* This time I don't use var keyword, so the exampleWin variable
will have a global scope */
exampleWin = window.open('example.html','Example','width=500,height=500');
}
function focusFn() {
exampleWin.focus();
}
function blurFn() {
exampleWin.blur();
}
// The HTML:
<button onclick="openWindow();">Open Window</button>
<button onclick="focusFn();">Focus</button>
<button onclick="blurFn();">Blur</button>
它以这种方式正常工作,但是只要我使用onclick事件调用focus / blur函数,而不是如果我在openWindow()函数中调用它们,对我来说还是很好。
尝试改用主窗口焦点:
function openWindow() {
var exampleWin = window.open('example.html','Example','width=500,height=500');
window.focus();
}
使用exampleWin.focus()而不是exampleWin.blur()
这样做在大多数情况下效果更好...
$('a').click(function(e){
e.preventDefault();
var evt = document.createEvent("MouseEvents"),
ele = document.createElement('a');
ele.href = $(this)[0].href;
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null);
ele.dispatchEvent(evt);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.