检测移动到Mobile Safari中的新选项卡

jos*_*hk0 7 javascript iphone mobile-safari ipad ios

我有一系列打开弹出窗口的页面(Mobile Safari中的新标签.)这些弹出窗口中的每一个都需要知道它们何时成为焦点.在桌面上,我们使用window.onblurwindow.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中获取我正在寻找的行为?有可能吗?

小智 6

试试这个:https://gist.github.com/1122546

它是Visibilty API polyfill.应该做的伎俩.

  • 事实上,它不适用于iOS. (6认同)

Yoa*_*ann 2

iOS 5 在非活动选项卡中暂停 JS。也许这个主题可以帮助你。

当选项卡不活动时,ios 5 暂停 javascript

使用 Javascript 处理 iPad 上的待机状态