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>
がドロップダウンボタンで1つのボックスに縮小されるため、と同じです。しかし、プレイブックブラウザーは拡張された選択リストをレンダリングするため、プレイブックなどの他のデバイスでは、このテストで偽のネガティブが表示されます。とは、クリックするとポップアップを表示します。
ネイティブの選択ポップアップが表示されているかどうかを確実に判断する方法はありますか?
なぜこれを検出しますか?そのようなコンポーネントをレンダリングする方法は、クライアントではなく、あなた次第です。非常に具体的な理由がない限り、その行動だけを残すべきです。 – Brad
私はjQuery Mobileを使ってプロジェクトを進めており、jQuery Mobileの[select menus](http://jquerymobile.com/test/docs/forms/forms-selects.html)のプレゼンテーションに代わるものを考え出しています。ポップアップを表示しないブラウザでは、選択肢を表示するネイティブの方法は機能しませんが、2つのスタイル付きのバージョンではパフォーマンスが低下します。ネイティブのポップアップまたは偽のオーバーレイを使用して、ネイティブコントロールを常に使用できるようにしたいと思います。 – kpozin
* select *の* size *オプションに注意してください。これが '1'の場合、ブラウザは要素をインライン要素としてレンダリングすることがあります。 – sergzach