3

私は、HTML を受け取り、それに対して何らかの処理を行い、それを表示する php ルーチンを持っています。


問題は、ブラウザーによっては、出力に追加される場合とされない場合があることです。

ブラウザを入手できれば、この問題をコーディングできます。ただし、使用されているブラウザを取得する方法については、これまでに見つけたものに混乱しています。

JQuery のドキュメントには、$browser プロパティを使用しないと記載されています。他の人は、navigator.userAgent を使用しないと言っています。それで、私は何を使うべきですか?

ありがとうございました!

[編集: 素晴らしい回答をありがとうございました。私は何か新しいことを学び、すべての返信を回答としてマークしたいと思いますが、1 つしか選択できないため、私の問題はおそらくスタイリングであるという彼の返信のために、ジャスティンを選択します。]

4

3 に答える 3

5

ブラウザ検出のベスト プラクティスは、使用しないことです。

代わりに機能検出を使用する必要があります。jQuery.supportの一連のテストを確認してください。

于 2013-03-28T14:50:34.833 に答える
1

本当に、本当に、本当にブラウザーについて知りたい場合は、 get_browser() ( http://php.net/manual/en/function.get-browser.php ) を使用します。これはお勧めしません。ファイルの更新が遅く、常に更新する必要があるだけでなく、ブラウザごとに異なる出力をユーザーに提供することも悪い習慣です。

chrome/firefox 以外のブラウザについては、後で javascript/css のバグや問題を修正することをお勧めします。

于 2013-03-28T14:53:49.300 に答える
1

現在のベスト プラクティスは、特徴検出を使用することです。Modernizr$.supportjQuery API の一部など、これ専用のライブラリ全体があります。アイデアは、欠落している機能をチェックし、その機能がサポートされていないというメッセージを提供するまで、二次的なサポートにフォールバックすることです。

現在、Web 開発者の間のマントラは「ブラウザーの検出を行うな」ですが、場合によってはそれは非現実的だと思います。「あなたは Internet Explorer 7 を使用しています!」と言いたいことがよくあります。get_browser()などであり、これには明らかに phpまたはnavigator.userAgentJavaScript 側でユーザー エージェント文字列を推測する必要があります。また、IE7 と IE8 が大量のメモリを使用して特定のデータ ロードを処理する Web アプリにも問題がありました。これは明らかに検出可能な「機能」ではありません。

機能検出を使用して、特定のブラウザーを推測することもできます。たとえば、IE7 にはwindow.localStorage.

重要なのは、ブラウザが何であるかを推測しようとする場合、特定のエラーの可能性を受け入れる必要があるということです。

于 2013-03-28T14:55:17.163 に答える