0

現在のプロジェクトにタッチ デバイスの特定の種類のサポートを追加する必要があります。このようなことをしなければならないのはこれが初めてなので、いくつかの「よくできた」Web サイトのコードを調べて、どのようにそれを行うかを確認しました。

あるページは次のようになります。

if(document.querySelectorAll && (navigator.platform == "iPad" || navigator.platform.substring(0, 6) == "iPhone" || navigator.platform == "iPod" || navigator.userAgent.indexOf('Android') > -1)) {...}

手元にあるすべてのデバイスでテストしましたが、動作しますが、この方法で大丈夫ですか?教えてください。それを行う「正しい」方法はありますか?

ここで、ブラウザの検出を回避する必要があることを読んだので、代わりにオブジェクトの検出を使用する必要があるため、質問しています。今、彼らdocument.querySelectorAllは物体検出もテストしていることがわかったので、その後に続くものはすべて、ある種のセーフティネットにすぎないのでしょうか?

4

2 に答える 2

1

はい、ブラウザの検出は避けるべきです。ブラウザが変わる可能性があるためです。

現在、Google Chrome は機能をサポートしていない可能性があります。しかし、明日は Chrome が更新され、サポートされるはずです。

if (!isGoogleChrome())したがって、Chrome が更新された日に何かを行う場合は、コードを更新する必要があります。

オブジェクト検出を行う必要があります。たとえば、関数/オブジェクトがここにあることを確認したい場合は、テストしてください:

if (document.querySelectorAll !== undefined) {
    //...
}

http://modernizr.com/を使用することもできます。現在のブラウザー機能を検出できます。

于 2013-03-07T07:51:52.907 に答える
0

使用するコードは非常に賢明です。最初に単純な文字を挿入すると、失敗します。

次のようなものに置き換えることができます

if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|Mini/i.test(navigator.userAgent)) { ...

ただし、デバイスの検出は、考えているよりも多様である可能性があるため、危険であることに注意する必要があります。一部のデスクトップ ブラウザーよりも優れた CPU、ネットワーク アクセス、または画面を備えているものもあります。したがって、ほとんどの用途では、必要な機能を検出することをお勧めします。

私の意見では、利用可能なデバイスに応じてサイトを維持することを計画しているが、 Modernizrのようなライブラリや特定のテストなどの他のソリューションがある場合、この検出を使用してタッチ スクリーンを検出することは正当にできます。

于 2013-03-07T07:50:02.033 に答える