JQuery Focus / Blur和非Jquery Focus / blur在IE 11(Internet Explorer 11)上不起作用

时间:2016-01-13 13:21:13

标签: javascript jquery html internet-explorer focus

我想检测我的浏览器窗口是否有焦点(已选中)。我使用以下代码来执行此操作:

$(window).focus(function() { 
    window.focusFlag = true; 
}).blur(function() { 
    window.focusFlag = false; 
});

来源: Using JQuery to bind "focus" and "blur" functions for "window", doesn't work in IE

它适用于mozilla firefox 43.0.4,但它在IE 11上不起作用。

我还尝试了不涉及JQuery的焦点/模糊方法。

function onBlur() {
    document.body.className = 'blurred';
};
function onFocus(){
    document.body.className = 'focused';
};

if (/*@cc_on!@*/false) { // check for Internet Explorer
    document.onfocusin = onFocus;
    document.onfocusout = onBlur;
} else {
    window.onfocus = onFocus;
    window.onblur = onBlur;
}

它也适用于mozilla firefox 43.0.4,但它在IE 11上不起作用。

Srource: http://www.thefutureoftheweb.com/blog/detect-browser-window-focus

我该怎么办IE 11?

1 个答案:

答案 0 :(得分:1)

标准定义为focus

  

此事件类型与focusin类似,但在焦点移动后调度,并且不会冒泡。   https://www.w3.org/TR/uievents/#events-focusevent

因此,focusin将适用于jQuery中的父母。

<input type="text" />

$(window).focusin(function() { alert("Focussed"); }).focusout(function() { alert("Blur"); });

Try in JSFiddle