发现 Safari4 的 select 控件 bug

昨天看了新的淘宝首页,非常赞,有不少模仿/参考Yahoo 的成分。

当时用的Safari 4 Public Beta (528.16)(后来用同事的Safari 4.0.2 (530.19.1)也一样),偶然点到预订机票的页签,随便点了几下选择框( 最初长度为31, 再转到2月,发现最后多了好几个不能点击的可见选项,此时浏览器也经常性崩溃。

这应该是渲染引擎的问题,而针对 IE 激活重新渲染的代码也无效:

function reflow(){
    var b = document.body;
    //b.style.zoom = b.style.zoom=="1"?"100%":"1";
    //b.style.zoom = 1.1;
    //b.style.zoom = '';
    b.style.display = "none";
    b.style.display = "";
}

1
2
3
4
5
6
7
8
9
10

但是淘宝紧邻预订机票左侧页签的“游戏快冲”却没有这个问题,于是怀疑是跟 Option 的个数有关。

经过更多的实验分析, 结论 是超出24个 Option 之后的选项,渲染就会出问题, 而恰巧? Safari 4 默认最大下拉长度也是24个。

Help
[count]gg 跳转到第 [count] 行,默认第 1 行。
[count]G 跳转到第 [count] 行,默认最后一行。
[count]j 向下跳转 [count] 行,默认跳转一行。
[count]k 向上跳转 [count] 行,默认跳转一行。
/ 开始搜索。按 <Esc> 退出。
gh 跳转到首页。
gb 跳转到博客首页。
gw 跳转到 Wiki 首页。
gt 跳转到我的 Twitter Profile 页。
gp 跳转到我的 Github Profile 页。
? 打开帮助。按 <Esc> 退出。