在iPhone 4/4s (iOS 7.0.1)上,当缩放文本输入框时(仅在缩放时),Safari浏览器会崩溃。

5

苹果手机4/4s在运行iOS 7系统时,使用Safari缩放文本框时会出现崩溃的情况。我们的网站在iPhone 5和桌面电脑上都能正常工作。

复现步骤如下:

1)使用iPhone 4/4s访问www.panabee.com

2)输入两个搜索词(例如,“stackoverflow rocks”)进行搜索。

3)当结果页面加载后,将焦点放到顶部的搜索框中,并调整搜索词。此时Safari会崩溃。必须进行缩放操作才会发生崩溃。如果不进行缩放而是直接调整搜索词,则网站可以正常工作。

以下jQuery代码会在编辑文本框时执行:

function text_field_onclick( field ) {
    field = $( field );
    if ( field.hasClass('tip') ) {
        field.removeClass('tip');
        field.val( '' );
    }
}


function text_field_onblur( field ) {
    field = $( field );
    if ( !field.val() ) {
        field.addClass('tip');
        field.val( field.attr('tip') );
    }
}

为什么Safari会崩溃?是我们网站的问题吗?

你有查看崩溃日志看是否有任何异常吗? - Jack
1
iOS 7.0是出了名的容易崩溃,尤其是在老设备上。这是苹果的问题,不是你的问题。 - nobody
如果你确定,@AndrewMedico,请将其发布为答案,假设没有人反驳你,我们将授予你赏金。 - Crashalot
@JackPattishallJr,我们还没有这样做,因为我们将问题隔离到了缩放行为上。在移动Safari上查看崩溃日志的最佳方法是什么? - Crashalot
1
@Crashalot 我会使用Xcode。当您插入设备时,您应该会看到“组织者”启动。您可能需要将设备配对以进行开发使用以访问日志。一旦所有设置完成,您将看到设备日志,并希望能够符号化日志以查看导致崩溃的原因。过去,我已经使用这个过程来解决我们移动Web应用程序中的崩溃问题(低内存,WebKit渲染问题等)。 - Jack
2个回答

0
问题确实是一个内存问题,唯一消除崩溃的方法是提高页面性能。我建议使用完整的构建页面,然后逐个删除其中的部分,直到页面正常工作为止。
在这篇博客文章中,作者描述了删除一个单独的注释可以使错误消失。
整个过程确实很痛苦,但目前还没有其他调试此类错误的可能性。
另外请注意:在开发模式下,浏览器本身的渲染和页面性能所需的内存较少。因此关闭开发模式可能会产生很大的差异。

0
这是由于"内存不足"引起的,这是一个内存问题。 iPhone5的内存比iPhone4和iPhone4s大,所以在iPhone5上不会发生这种情况。这是一个性能问题。请提高您的应用程序性能或解决内存问题。也许在您的应用程序中,一些功能使用了更多的内存,这就是为什么会出现这种情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接