2012-12-05 11 views
5

Ich habe eine Zeitmaske in JavaScript erstellt, die gut für PC, Mac, iPhone und iPad funktioniert, aber nicht in den meisten Android-Handys funktioniert (ich würde lieber nicht ins Detail gehen) warum diese Funktionalität in Android nicht konsistent funktioniert, also deaktiviere ich es. Für Samsung funktioniert die eingebaute HTML5-Zeitauswahl hervorragend.Prüfen, ob Browser HTML5 Timepicker unterstützt

Für Android-Handys möchte ich die HTML5-Zeitauswahl nutzen, wenn native Browser-Zeitauswahl verfügbar sind (wie für moderne Samsung-Handys).

Ich weiß, ich kann erkennen, ob der Browser die date/datetime Eingabearten unterstützt, aber das bedeutet nicht unbedingt, dass der Browser eine Zeitauswahl unterstützt (Für alle, die diesen Test mit einem HTC EVO 3D bezweifeln, als nur ein Beispiel.) Diese Frage (Detect browser's native date/time pickers) zeigt an, dass wenn der Zeittyp unterstützt wird, der Browser eine Zeitauswahl implementiert hat, aber das ist falsch.

Ich bin bewusst von modernizr, aber ich sehe keinen Weg, um tatsächlich zu überprüfen, ob der Browser einen Timepicker unterstützt.

Also mit dieser Hintergrundinformation. Kennt jemand eine Möglichkeit, festzustellen, ob der Browser eine Zeitauswahl implementiert hat?

+0

Was meinen Sie, _ "tatsächlich überprüfen, ob der Browser eine Timepicker unterstützt." _? Genau das macht modernisz. – Cerbrus

+0

Vielleicht versuchen Sie das gleiche wie vorgeschlagene Lösung in der Frage, die Sie verweisen, aber versuchen Sie, ein Datum zu setzen und es auch lesen? Wenn das Datum zurückgegeben wird, sollte es den Eingabetyp unterstützen. – Rik

+0

_ "überprüfen, ob der Browser einen Zeitpicker unterstützt" _ = Nicht nur, dass der Browser unterstützt, sondern, wenn der Benutzer auf ein Feld klickt, erscheint ** eine Zeitauswahlsteuerung ** – SemanticZen

Antwort

1

Ich würde argumentieren, dass die sicherste Wette ist, dass <input type="date"> nicht unterstützt wird. Ab heute (Anfang 2016) ist die Benutzeroberfläche für die Datumsauswahl in den verschiedenen Browsern immer noch sehr inkonsistent. Wenn Sie nicht für eine sehr konkrete Untergruppe von Browsern entwickeln, benötigen Sie sowieso ein wenig JavaScript.

Referenzen:

+0

Das ist im Grunde, was ich getan habe. Ich verwende den Typ "date" auf iOS-Geräten und verwende einen jQuery-Datapicker auf allen anderen Geräten – SemanticZen

1

Ihre beste Wette wäre anzunehmen, dass Browser, die eine <input type="date"> unterstützen, auch eine Zeitauswahl für sie implementiert haben.
(Soweit ich weiß, ist dies der Fall ist, welcher Punkt würde es type="date" bei der Unterstützung sein, wenn es nicht eine vernünftige Art und Weise zur Eingabe des Datum? Hat) Dies ist

, weil es keine Möglichkeit gibt, zu überprüfen, wenn der Browser tatsächlich einen Zeitzähler anzeigt. Abgesehen von den Moderniz Checks gibt es wirklich nichts, was Sie tun können.

+2

Leider ist das eine schlechte Annahme – SemanticZen

+1

Also gibt es Browser, die keine Zeitauswahl haben, auch wenn sie "Datumseingaben" unterstützen? Ich fürchte, Sie haben wirklich keine andere Wahl, als den Browsern zu vertrauen – Cerbrus

+1

Leider ist das der Fall. Also die Optionen scheint zu sein 1. Angenommen, alle Android-Handys nicht Zeit-Picker unterstützen oder 2. jedes Telefon/Träger Android-Gerät erkennen, die Zeit-Picker unterstützt (über Benutzer-Agent) ... 2 schlechte Optionen – SemanticZen

Verwandte Themen