16

ブラウザ名で特にチェックせずに、ブラウザが特別な「ネイティブ」スタイルのドロップダウン (iPhone や iPod など) を表示するかどうかを確認したいと思います。ユーザーエージェントを名前で見ずに、より一般的な方法でその機能を確認することは可能ですか?

標準またはより強化されたドロップダウン コントロールをレンダリングするかどうかを決定するために、これを実行したいと思います。

4

6 に答える 6

4

本当に貧弱な解決策がなければ、これが実際に可能だとは思いません。ほとんどすべてのモバイル ブラウザーは、オプションを表示するためにネイティブの ddl を使用するため、デバイスを検出するのが最善の方法だと思います。

これは、Modernizrのメディア クエリとタッチ検出を使用して実現できます。

if (Modernizr.touch && Modernizr.mq('only screen and (max-width: 768px)') {
     //it is a mobile / tablet device
}

または、通常の CSS メディア クエリを使用します。

于 2015-08-24T22:14:01.813 に答える
4

私はこの答えを 90% 確信しています: いいえ。

見た目が主観的weirdに定義されているブラウザを使用しているかどうかを検出しようとしています。weirdユーザー Reda の答えは正しいですが、質問の一部に違反しています (ブラウザを名前で特定するためではありません)。私のポイントは、修飾子は主観的であるため、ブラウザを名前で識別する必要があるということです。そのため、JS/CSS テストは見つかりません。

ブラウザーは、表示するドロップダウンを完全に制御できます。ほとんどは、これらのドロップダウン コンポーネントでの CSS の実装と矛盾しています。ブラウザーがアプリケーション レベルでドロップダウンに関する情報を公開する必要があるという標準はありません。

必要なものに影響を与えるには、ドロップダウン コントロールが気に入らないブラウザーを見つけてリストし、Modernizr などの策略を使ってそれらをターゲットにする必要があります。残念ながら、それはあなたの質問の意図に反しているので、実際の質問に対する答えは...いいえ、申し訳ありません。

于 2015-08-27T16:15:08.383 に答える
1

現在、の存在を確認してwindow.orientationいますが、Android と ios で機能しているようです。

于 2015-08-25T11:48:24.537 に答える