6

我有一个 ASP.Net 网页,目前可以在 iOS4 上运行,但不能在 iOS5 上运行。

在父网页上,我有一个打开子窗口的按钮。我在打开窗口调用后立即在父窗口中执行 setTimeout 刷新操作。

我在 iPhone iOS5 上注意到,当它打开子窗口时,父页面中的 setTimeout 函数不会被调用,直到我返回父窗口然后返回子窗口查看更新。

这是我在父页面中的代码片段,我认为问题出在哪里

WindowManager.OpenWindow('...')
t = setTimeout(function() { handles[0].testfx(); }, 1000);

这可以在 iOS4 上运行,但不能在 iOS5 上运行。

有任何想法吗?

4

2 回答 2

3

当窗口不是活动窗口时,iOS5 确实会暂停 JavaScript。对此您无能为力,因此您能做的最好的事情就是尝试更改您的设置,以便当您的窗口在后台时不需要运行 JavaScript。

你说你在做一个setTimeout refresh thing in the parent window. 你为什么做这个?坦率地说,这听起来有点奇怪——当用户甚至看不到您的页面时,您为什么要刷新任何内容?这条线到底handles[0].testfx();能为你做什么?

于 2012-07-12T22:37:45.623 回答
2

这只是一个建议,因为我无权对此进行测试,但您可以使用window.postMessage. 这方面的一个例子可以在这里找到。

在您的情况下,您可能想要检查是否已经过了所需的时间,如果没有,请window.postMessage再次调用,否则,请调用您的处理程序。

我不确定window.postMessage当不在活动窗口中时,呼叫的处理速度有多快(如果有的话)。

于 2012-07-13T20:53:54.633 回答