2009-04-02 4 views
3

Следующий Javascript для изменения размера списка избранного разбивается на Google Chrome. Он работает при вставке в поле, но при нажатии на него появляется «Aw, Snap!». страница ошибки.Google Chrome ломается, когда наборы фокусов выбирают размер

<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. Мне сказали, что он тоже ломается в Сафари.

Любая помощь, идеи или обходные пути приветствуются.

(PS Yeh я знаю, что это не очень хорошая форма, чтобы изменить размер списка выбора, но это то, что/клиент хочет босс)

ответ

6

Изменения линии с выбором этим:

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

It работает для меня в Chrome. Я не пробовал в Safari, но я подозреваю, что это сработает. В основном все, что мы делаем, это экранирование вызова с помощью setTimeout, которое, похоже, обходит ошибку в Webkit.

+0

Большое вам спасибо! Отлично работает: D –

0

Насколько я могу судить, Google Chrome игнорирует ВСЕ атрибуты размера для нескольких полей выбора.

См ссылка:

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

Используйте любой другой браузер, попробуйте Google Chrome. Только основные атрибуты HTML полностью игнорируются Chrome.