在放大文本输入字段时(仅在缩放时)在iPhone 4 / 4s(iOS 7.0.1)上崩溃Safari

时间:2014-05-08 07:57:57

标签: javascript ios iphone safari mobile-safari

在放大我们网站上的文本字段时,Safari在运行iOS 7的iPhone 4/4上始终崩溃。我们的网站在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会崩溃?它与我们的网站有关吗?

2 个答案:

答案 0 :(得分:0)

这是因为" 内存不足"这是一个内存问题。 iPhone5的内存比iPhone4的内存大和iPhone4s的。这就是iPhone5上没有发生这种情况的原因。这是一个性能问题。请提高您的应用程序性能或解决内存问题。也许在你的应用程序中,一些函数正在使用更多内存,这就是为什么会发生这种情况。

答案 1 :(得分:0)

问题确实是内存问题,删除崩溃的唯一方法是提高页面性能。我建议使用完整的构建页面,然后逐个删除部分,直到您处于页面正常工作的位置。

在作者描述的blogpost中,删除一条评论可以使错误消失。

整个过程真的很痛苦,但没有其他可能来调试这种类型的错误。

另请注意:在开发模式下,浏览器本身具有较少的内存用于呈现和页面性能。因此,关闭开发可以产生很大的不同。