检测浏览器是否显示<select multiple =“”>作为模态对话框</select>

时间:2011-07-18 20:51:47

标签: javascript html 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>

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

高度相同因为<select>被缩减为带有下拉按钮的单个框。但是在其他设备上,例如Playbook,这个测试会给出误报,因为Playbook浏览器呈现扩展的选择列表,而会在点击它们时显示弹出窗口。

有人能想出一种可靠的方法来确定是否显示原生选择弹出窗口吗?

2 个答案:

答案 0 :(得分:1)

看起来 masedesign 正在引领这一点,但我将更进一步:

可能会检测移动浏览器 vs 非移动浏览器(例如RIM,Android,iOS等 VS FF,Chrome,Opera,Safari,IE等)

答案 1 :(得分:0)

jQuery Mobile Beta 2为您提供了使用自定义菜单而非本地菜单的选项:

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