Определить, отображает ли браузер <выберите несколько> в качестве модального диалога - PullRequest
13 голосов
/ 19 июля 2011

Есть ли способ использовать JavaScript для определения, отображает ли данный браузер сфокусированный элемент <select multiple> как всплывающее окно или только как встроенный блок?

На некоторых платформах, таких как браузер Android и iOS Safari, использование всплывающего окна можно обнаружить, сравнивая высоты, скажем,

<select multiple>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
<select>

и

<select multiple>
  <option>a</option>
<select>

Высоты одинаковы , потому что <select> s уменьшены до одного поля с выпадающей кнопкой. Но на других устройствах, таких как Playbook, этот тест дал бы ложный отрицательный результат, поскольку браузер Playbook отображает расширенные списки выбора , а показывает всплывающие окна при нажатии.

Может кто-нибудь придумать надежный способ определить, показывается ли всплывающее окно с собственным выбором?

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Похоже, masedesign ведет к этому, но я собираюсь пойти еще дальше:

Возможно, обнаружим мобильные браузеры против немобильный браузер (например, RIM, Android, iOS и т. Д. VS FF, Chrome, Opera, Safari, IE и т. Д.)

0 голосов
/ 24 августа 2011

jQuery Mobile Beta 2 дает вам возможность использовать собственные меню вместо собственных:

http://jquerymobile.com/demos/1.0b2/#/demos/1.0b2/docs/forms/selects/index.html

...