Rod*_*Rod 45 javascript jquery
有没有办法,当我点击我的浏览器,并让它集中注意力,运行一次方法?然后当浏览器失去焦点然后重新获得焦点时再次运行该方法一次.
Dan*_*uis 70
您可以在对象上附加focus和blur事件处理程序,window以跟踪窗口是否获得焦点(请参阅http://jsfiddle.net/whQFz/以获取一个简单的示例).window适用于当前的浏览器上下文(因此可以是窗口,选项卡,框架等).
注:该focus事件将触发每一个窗口获得焦点时间和blur事件将触发每次失去焦点的时间.将焦点从窗口移开的一个例子就是一个alert窗口.如果您尝试在onfocus事件处理程序中发出警报,您将获得无限循环的警报!
// Set global counter variable to verify event instances
var nCounter = 0;
// Set up event handler to produce text for the window focus event
window.addEventListener("focus", function(event)
{
document.getElementById('message').innerHTML = "window has focus " + nCounter;
nCounter = nCounter + 1;
}, false);
// Example of the blur event as opposed to focus
// window.addEventListener("blur", function(event) {
// document.getElementById('message').innerHTML = "window lost focus"; },
// false);
Run Code Online (Sandbox Code Playgroud)
Bre*_*ber 16
$(document).ready(function() { $(window).one("focus", SomeFocusMethod); } );
var SomeFocusMethod = function()
{
// do stuff
$(window).one("blur", SomeBlurMethod);
}
var SomeBlurMethod = function()
{
// do stuff
$(window).one("focus", SomeFocusMethod);
}
Run Code Online (Sandbox Code Playgroud)
如果你的目标浏览器比IE9更新,你应该使用"页面可见性API"javascript浏览器api:https: //developer.mozilla.org/en-US/docs/Web/Guide/User_experience/Using_the_Page_Visibility_API