网页在安卓浏览器上崩溃问题

4

有人能帮我弄清楚为什么这个页面会导致Android浏览器崩溃吗?

http://thewellcommunity.org

所有子页面都能正常工作,但是在安卓手机上加载主页时,浏览器应用程序会突然关闭,没有任何警告或错误信息。我已经在三部安卓手机和一台Kindle Fire上尝试过了。
当我在手机浏览器中完全禁用JavaScript时,页面可以成功加载。不幸的是,这是一个正在运行的网站,所以我希望在服务器端保存禁用JavaScript的代码块作为最后的手段。
另外,安卓手机上的Opera Mini、Opera Mobile和Firefox不会崩溃,但Dolphin、Miren和原生浏览器会。
更新:当我说这个问题已经解决时,似乎我太早下结论了。虽然我已经减少了浏览器崩溃的频率,但它仍然偶尔会在页面加载时崩溃。:(
更新2:现在看来,崩溃可能与CSS有关。在启用和禁用各种JavaScript片段数周后,我尝试禁用样式表,现在我无法让它崩溃了。
有人知道可能导致这种情况的安卓CSS bug吗?我的猜测是,它与某些CSS有关,这些CSS只有在JavaScript完成其工作后才被访问。

在我的Nexus S上,冰激凌三明治系统的使用效果非常好。 - waxspin
我在一台2.2.2的Galaxy S Wi-Fi设备上使用时,发现启动应用程序会导致崩溃。然而,在3.2的模拟器中正常加载。我猜测你遇到了旧版本Android已知的(并且已经修复的)bug。我会尝试在一个2.2的模拟器中让它崩溃;这样我或许可以获得一个堆栈跟踪,以便追踪到具体是哪个错误... - Matt Gibson
没有崩溃,Android 2.2.2,Galaxy Spica(SamdroidMod),尽管有一些小的布局问题。这可能是一个Flash问题(我没有Flash),你尝试禁用Flash视频了吗? - Lie Ryan
2
你可以将主页复制到 secret.html 并进行测试/禁用任何内容。 - goat
Chris - 你太棒了!我为什么没想到呢?!我把主页保存为静态HTML文件,然后逐个删除JavaScript引用,直到找到罪魁祸首。原来有一些垃圾ASP.Net JavaScript代码导致问题。找到了一种方法来删除该脚本,现在一切都运行得很好!谢谢! - Jargs
显示剩余2条评论
3个回答

3
检查一下 Weinre,可以在 这个 youtube 视频中看到它的解释。使用它,您可以像使用知名的 Firebug 一样调试 Android WebKit 浏览器。
在 Eclipse 的模拟器(2.3)中,它可以正常加载但存在一些布局问题。

看起来相当不错。我肯定得试一试。谢谢! - Jargs

3

我找到了罪魁祸首......似乎是由于一个CSS字体族规则导致的。虽然,我不确定为什么,因为同样的字体堆栈在网站的其他几个地方也被使用了。 :\

这是导致问题的那一行......

.Site-Search .Buttons input 
{
    ...
    font-family: TeXGyreHerosRegular, Arial, "Helvetica Neue", Helvetica, sans-serif;
    ...
}

出于某种原因,那行代码会导致所有原生Android浏览器崩溃。很奇怪。


1
对我来说,我在一个规则中使用了float: right;和float: left;,这导致Android浏览器崩溃。 - Jim W says reinstate Monica

1
如果有人在加载特定网站时,他们的手机不同浏览器在几秒钟后都崩溃,可能是由于所使用的jQuery版本导致的。例如,LG-p690f和HTC Incredible S是已知存在问题的几款Android 2.3.x手机之一,这些问题与jQuery 1.8.1和1.8.2中的淡入淡出转换有关,原因是浏览器JavaScript错误会导致jQuery的Animation函数在此行失败:
percent = 1 - ( remaining / animation.duration || 0 )

如果您是网站所有者,您可以尝试升级到1.8.3版本(或者如果允许的话,降级到1.7.x)。否则,您可以发送电子邮件给该网站。
来源:

http://bugs.jquery.com/ticket/12497

https://github.com/jquery/jquery/pull/1019


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