我正在使用这个非常基本的javascript测试来测试对datetime和/或datetime-local元素的支持。
var delm =document.createElement("input")
delm.setAttribute("type", "datetime");
if (delm.type != "datetime") {
// do some custom datepicker
}
我也在使用" datetime-local"进行同样的测试。元素类型。在我测试的每个其他浏览器中,我得到了预期的结果。
在Firefox移动版中,delm.type
变为" text",因此我实现了后备日期选择器。除了聚焦该字段时,弹出本机日期时间选择器!
使用最新版本的Modernizr,我得到了同样糟糕的结果。
有没有更好的方法来测试元素支持?
答案 0 :(得分:2)
This is a bug in Firefox Mobile.尽管UI对话框工作得很好,但目前还没有实现任何DOM接口。在DOM中,<input type="datetime" />
的外观和感觉仍然像<input type="text" />
,没有明显的方法可以检测到它。
根据您的应用程序,您可以为Firefox Mobile制作一个特例(不幸的是,浏览器嗅探)。或者,您可以强制 type
为"text"
,以确保没有浏览器会尝试使用自己的用户界面:
var delm =document.createElement("input")
delm.setAttribute("type", "datetime");
if (delm.type != "datetime") {
delm.type = "text"; // prevent double dialogs
// do some custom datepicker
}
我希望我有更好的答案...