3

選択リストのサイズを変更する次のJavaScriptは、GoogleChromeで壊れます。フィールドにタブで移動すると機能しますが、クリックすると「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ええ、選択リストのサイズを変更するのはあまり良い形式ではないことは知っていますが、それは上司/クライアントが望んでいることです)

4

3 に答える 3

6

select のある行を次のように変更します。

<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

私が知る限り、Google Chrome は複数の選択ボックスのすべての選択サイズ属性を無視します。

リンクを参照してください:

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

他のブラウザを使用してから、Google Chrome を試してください。Chrome では基本的な HTML 属性だけが完全に無視されます。

于 2010-04-12T23:05:17.430 に答える