“如何检测浏览器”;“最小化”;及;“最大化”;JavaScript中的状态?
我试图找到浏览器的最小化和最大化状态,因为我想相应地点击AJAX请求浏览器状态“如何检测浏览器”;“最小化”;及;“最大化”;JavaScript中的状态?,javascript,Javascript,我试图找到浏览器的最小化和最大化状态,因为我想相应地点击AJAX请求浏览器状态 有人知道如何使用JavaScript检测浏览器状态吗?您可以尝试使用页面可见性API,它具有布尔属性document.hidden(document.webkitHidden),该属性还检测当前页面是最小化还是最大化。这还取决于用户是否关注当前浏览器选项卡: 我认为检测这些状态的唯一可靠方法是检查HTML5提供的属性和事件(这仍然是一个实验性功能) document.hidden // Returns true i
有人知道如何使用JavaScript检测浏览器状态吗?您可以尝试使用页面可见性API,它具有布尔属性document.hidden(document.webkitHidden),该属性还检测当前页面是最小化还是最大化。这还取决于用户是否关注当前浏览器选项卡:
我认为检测这些状态的唯一可靠方法是检查HTML5提供的属性和事件(这仍然是一个实验性功能)
document.hidden // Returns true if the page is in a state considered to be hidden to the user, and false otherwise.
document.visibilityState // Returns a string denoting the visibility state of the document
您还可以对可见性的更改作出反应
document.addEventListener("visibilitychange", function() {
console.log(document.hidden, document.visibilityState);
}, false);
请记住,这不适用于跨浏览器,仅在某些浏览器版本中可用。我使用此代码
window.addEventListener('blur', function(){
console.log('blur');
}, false);
window.addEventListener('focus', function(){
console.log('focus');
}, false);
以下是:
GitHub上有一个整洁的库:
例如:
// If page is visible right now
if( ifvisible.now() ){
// Display pop-up
openPopUp();
}
我已经在所有浏览器上测试了1.0.1版,并确认它可以与以下浏览器一起使用:
- IE9,IE10
- FF 26.0
- 铬34.0
- IE8-始终指示选项卡/窗口当前处于活动状态(.now()始终为我返回true)
如果介于两者之间呢?我很少运行windows Maximized。在我的情况下,当我最小化浏览器或按alt tab键时,页面可见性API的状态不会改变。这是一种预期的行为,因为如果我最小化浏览器,它基本上处于隐藏状态,对吗?当window.resize在OSX上无法注意到“reduced to dock”(图标化/最小化)和“restore from dock”(还原)操作时,您在这里展示的这项技术似乎可以工作。干得好这似乎无法检测到点击窗口并以另一种方式聚焦,但这可能是预期的行为,这非常好。非常感谢你