iPhone jQuery触发电子邮件覆盖后中断

前端之家收集整理的这篇文章主要介绍了iPhone jQuery触发电子邮件覆盖后中断 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@

我正在使用jQuery开发iPhone移动网站.我有一个隐藏的div(类.tile-content),其中包含一些内容.单击带有onclick =“ showContent(this)”的链接调用fadeIn,如下所示:

        function showContent(obj)
        {
            alert($(obj).html());
            $(obj).next('.tile-content').fadeIn();
            return false;
        }

一切正常,直到我点击带有“ mailto:”链接的“给我们发电子邮件”,触发iPhone的内置电子邮件覆盖功能.然后,我单击“取消”,并返回到该站点.现在,如果我单击一个链接,我的.tile-content div将不会显示.我在iPhone上收到了适当的警报.在我按下一次之后,什么都没有起作用(我认为这意味着存在js错误?).在物理iPhone上调试非常困难.有任何想法吗?

更新:由于下面@John Boker的提示,我启用了Safari Mobile的调试控制台.没有出现错误,但是我仍然遇到同样的问题.

最佳答案
该问题发生在setInterval / setTimeout javascript函数内.在iPhone的Safari中启动邮件窗口时,似乎已暂停了用于这些功能的内部计时器.发送电子邮件(或点击取消)后,计时器将暂停,并且setTimeout / setInterval函数将不会触发.

这将破坏任何依赖setTimeout / setInterval的东西,例如jquery动画和任何异步ajax调用,因为jquery使用setInterval轮询直到请求返回(我自己遇到了这个问题).

如果点击网址栏,然后单击“取消”或按手机上的“关闭”按钮,然后返回到safari,则功能将启动,一切将开始工作.并不是真正可以接受的解决方法.

猜你在找的jQuery相关文章