【发布时间】:2016-01-20 12:04:41
【问题描述】:
我在 JavaScript 中构建了一个时间掩码,它适用于 PC、Mac、iPhone 和 iPad,但在大多数 Android 手机中并不能始终如一地工作(我不想详细说明为什么这个功能可以) t 在 Android 中始终如一地工作)所以我禁用它。对于三星来说,内置的 HTML5 时间选择器非常有用。
对于 Android 手机,当本机浏览器时间选择器可用时(例如现代三星手机),我想利用 HTML5 时间选择器。
我知道我可以检测到浏览器是否支持date/datetime 输入类型,但这并不一定表明浏览器支持时间选择器(对于任何对此表示怀疑的人,请使用 HTC EVO 3D 进行测试,作为一个例子。)这个问题(Detect browser's native date/time pickers)表示如果支持时间类型,那么浏览器已经实现了一个时间选择器,但这是错误的。
我知道modernizr,但我没有找到真正验证浏览器是否支持时间选择器的方法。
所以有了这些背景信息。有谁知道确定浏览器是否实现了时间选择器的方法?
【问题讨论】:
-
什么意思,“实际验证浏览器是否支持时间选择器。”?这正是modernizr 所做的。
-
也许尝试与您引用的问题中建议的解决方案相同的方法,但尝试设置日期并阅读它?如果返回日期,它应该支持输入类型。
-
"实际验证浏览器是否支持时间选择器" = 不仅浏览器支持 ,而且当用户点击 字段它弹出一个时间选择器控件
-
@Rik:据我所知,如果您在任何输入字段上设置
.value,无论是否支持输入类型,它都会在获取时简单地返回该值。 Fiddle example。所以,我认为不可能检查输入是否真的“弹出时间选择器控件” -
只有一个疯狂的想法:根据this,没有办法访问
<input type="date">中的shadow dom 元素。但如果可能的话,您可以测试元素的内部工作以检查是否有日期选择器。另外,我尝试使用供应商前缀的伪元素(例如-webkit-calendar-picker-indicator)来解决这个问题,但没有成功。希望对您有所帮助。
标签: javascript html mobile-browser