检测浏览器是否将<select multiple>显示为模式对话框

kpo*_*zin 13 html javascript select cross-browser browser-feature-detection

有没有办法使用JavaScript来检测给定的浏览器是将焦点<select multiple>元素呈现为弹出窗口还是仅作为内联框?

在某些平台上,例如Android浏览器和iOS Safari,可以通过比较,例如,高度来检测弹出窗口的使用情况.

<select multiple>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
<select>
Run Code Online (Sandbox Code Playgroud)

<select multiple>
  <option>a</option>
<select>
Run Code Online (Sandbox Code Playgroud)

高度是相同的,因为<select>s减少到一个带有下拉按钮的盒子.但是在其他设备上,例如Playbook,这个测试会给出误报,因为Playbook浏览器渲染了扩展的选择列表,在点击时显示弹出窗口.

任何人都可以想出一种可靠的方法来确定是否显示本机选择弹出窗口?

Jac*_*nkr 1

看起来masedesign正在朝着这一目标迈进,但我要更进一步:

也许检测移动浏览器 非移动浏览器(例如 RIM、Android、iOS 等VS FF、Chrome、Opera、Safari、IE 等)