繁体   English   中英

window.blur()-我在做什么错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM