2012-12-05 131 views
5

我在JavaScript中构建了一个适用于PC,Mac,iPhones和iPad的时间掩码,但在大多数Android手机中并不一致(我不想详细讨论细节为什么这个功能无法在Android中一致工作),所以我禁用它。对于三星来说,内置的HTML5时间选择器效果很好。检查浏览器是否支持HTML5时间选择器

对于Android手机,我希望利用本机浏览器时间选择器(如现代三星手机)时的HTML5时间选择器。

我知道,如果浏览器支持date/datetime输入类型我可以检测,但是,这并不一定表明浏览器支持时间选择器(对于任何人谁怀疑此测试与HTC EVO 3D,因为刚)这个问题(Detect browser's native date/time pickers)表明如果时间类型被支持,那么浏览器已经实现了时间选择器,但这是错误的。

我知道modernizr,但我没有看到一种方法来实际验证浏览器是否支持timepicker。

所以有了这个背景信息。有谁知道一种方法来确定浏览器是否实现了时间选择器?

+0

你是什么意思,_ “实际上验证,如果浏览器支持timepicker。” _?这正是modernizr所做的。 – Cerbrus

+0

也许您在参考的问题中尝试与建议的解决方案相同的内容,但是尝试设置日期并阅读它?如果返回日期,它应该支持输入类型。 – Rik

+0

_“实际验证浏览器是否支持timepicker”_ _不仅仅是浏览器支持,但是当用户点击字段时,它会弹出一个时间选择器控件** – SemanticZen

回答

1

我认为最安全的赌注实际上是假定<input type="date">不受支持。截至今天(2016年初),日期选择器的实际UI在各浏览器中仍然非常不一致。除非你正在开发一个非常具体的浏览器子集,否则你将需要一些JavaScript。

参考文献:

+0

这基本上就是我所做的。我在iOS设备上使用type =“date”,并在所有其他设备上使用jQuery数据访问器 – SemanticZen

1

最好的办法是假定支持<input type="date">的浏览器也为它实现了时间选择器。
(据我所知,这样的话,什么时候会有支持type="date",如果没有一个合理的方式输入的日期?)

这是因为没有办法检查如果浏览器实际显示一个时间选择器。除了现代化的检查之外,你无能为力。

+2

不幸的是,这是一个不好的假设 – SemanticZen

+1

因此,有浏览器没有时间选择器,即使支持'日期'输入? 恐怕你真的没有别的选择,只能信任浏览器 – Cerbrus

+1

不幸的是,情况就是如此。所以选项似乎是1.假设所有Android手机不支持时间选择器或2.检测每个支持时间选择器的手机/运营商Android设备(通过用户代理)... 2个不好的选项 – SemanticZen

相关问题