当onfocus设置选择尺寸时,Google Chrome会中断

时间:2009-04-02 10:37:04

标签: javascript select google-chrome focus setattribute

以下用于调整选择列表大小的JavaScript会在Google Chrome中中断。它在Tabed into the field时有效,但点击它会产生“Aw,Snap!”错误页面。

<select onfocus="this.setAttribute('size', 3);">
<option>selectList with onfocus</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>

在FF和IE中正常工作。 这是onfocus之间的某种冲突(如果我在onClick上实现它没有问题)和设置size属性。我也被告知它在Safari中也会中断。

非常感谢任何帮助,想法或解决方法。

(P.S。Yeh我知道调整选择列表不是很好的形式,但这是老板/客户想要的)

3 个答案:

答案 0 :(得分:6)

使用select更改行:

<select onfocus="var that = this; setTimeout(function() {that.setAttribute('size', 3);}, 0);">

它适用于Chrome。我没有在Safari中尝试,但我怀疑它也能正常工作。基本上我们在这里所做的就是使用setTimeout转义调用堆栈,这似乎解决了Webkit中的错误。

答案 1 :(得分:1)

我也发现了这个:

所以这似乎是一个WebKit问题,并且出于某种原因他们不想修复它(使其符合标准)。

答案 2 :(得分:0)

据我所知,Google Chrome会忽略多个选择框的所有选择尺寸属性。

见链接:

http://www.w3schools.com/TAGS/tryit.asp?filename=tryhtml_select_size

使用任何其他浏览器,然后尝试使用Google Chrome。 Chrome完全忽略了基本的HTML属性。