3

以下 javascript 在 Google Chrome 中调整选择列表的大小。它在进入该字段时起作用,但单击它会导致“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 中中断。

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

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

4

3 回答 3

6

将带有选择的行更改为:

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

它在 Chrome 中对我有用。我没有在 Safari 中尝试过,但我怀疑它也会起作用。基本上我们在这里所做的只是使用 setTimeout 转义调用堆栈,这似乎绕过了 Webkit 中的错误。

于 2009-04-02T10:46:43.470 回答
1

我还发现了这个:

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

于 2011-01-31T02:08:25.493 回答
0

据我所知,谷歌浏览器忽略了多个选择框的所有选择大小属性。

见链接:

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

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

于 2010-04-12T23:05:17.430 回答