我有定期执行活动的JavaScript.当用户没有看到该站点时(即窗口或选项卡没有焦点),最好不要运行.
有没有办法使用JavaScript?
我的参考点:如果您使用的窗口未处于活动状态,则Gmail聊天会播放声音.
背景:我正在做一些需要检测人们是否注意的用户界面测试.但是,这个问题是不是有关的页面知名度API.
具体来说,我想知道如果在不同的浏览器中当前选项卡未激活或浏览器窗口未激活,我的Javascript代码将如何受到影响.到目前为止,我已经挖出了以下内容:
setInterval而setTimeout当标签不主动延迟降低 -看起来这只是最近开始出现,并可以搞砸茉莉花单元测试,周围的其他事物.requestAnimationFrame 选项卡未激活时速度变慢(合理,无法想到为什么这会对任何人造成太大影响)我有以下问题:
setInterval重复?它只是减少到一个限度或一个百分比?例如,如果我有一个10ms重复而不是5000ms重复,那么每个都会受到怎样的影响?我有一系列打开弹出窗口的页面(Mobile Safari中的新标签.)这些弹出窗口中的每一个都需要知道它们何时成为焦点.在桌面上,我们使用window.onblur并window.onfocus驱动此行为.但是,这些事件都不适用于iPad.我也试过window.onpageshow,window.onpagehide似乎也没有在正确的时间开火.我有一个测试HTML文件:
<html>
<head>
<script language="javascript">
console.log('Hello');
window.onblur = function(e) { console.log('blur'); };
window.onfocus = function(e) { console.log('focus'); };
window.onpagehide = function(e) { console.log('pagehide'); };
window.onpageshow = function(e) { console.log('pageshow'); };
</script>
</head>
<body>
<a href="http://www.google.com" target="_blank">Click Me</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
理论上,当您单击"单击我"时,您应该在出现新窗口时出现模糊事件.但这不会发生在Mobile Safari上.onpagehide并且也onpageshow没有表现出爱,它们只能帮助您检测何时关闭标签.
如何在Mobile Safari中获取我正在寻找的行为?有可能吗?