我有一个ASP.Net网页,目前适用于iOS4但不适用于iOS5。
在父网页上,我有一个打开子窗口的按钮。我在打开窗口调用之后立即在父窗口中执行setTimeout刷新。
我在iPhone iOS5上注意到,当它打开子窗口时,父窗口中的setTimeout函数不会被调用,直到我回到父窗口然后回到子窗口才能看到更新。
这是我父代页面中代码的一小部分,我认为是问题所在
WindowManager.OpenWindow('...')
t = setTimeout(function() { handles[0].testfx(); }, 1000);
这可以在iOS4上运行,但不能在iOS5上运行。
有什么想法吗?
答案 0 :(得分:3)
当窗口不是活动窗口时,iOS5确实会暂停JavaScript。关于此,您无能为力,因此您可以做的最好的方法是尝试更改您的设置,以便在窗口处于后台时不需要运行JavaScript。
你说你正在做setTimeout refresh thing in the parent window
。你为什么做这个?坦率地说,这听起来有点奇怪 - 为什么当用户甚至看不到您的页面时,您想要刷新任何内容?第handles[0].testfx();
行对你有什么作用?
答案 1 :(得分:2)
这只是一个建议,因为我没有权限对此进行测试,但您可以使用window.postMessage
来解决此问题。可以找到here的示例。
在您的情况下,您可能想要检查是否已经过了所需的时间,如果没有,请再次致电window.postMessage
,否则请致电您的处理程序。
我不确定在不在活动窗口中时,对window.postMessage
的调用会有多快,如果有的话。