为什么Firefox不尊重标准的javascript支持元素测试

时间:2015-08-12 19:47:46

标签: javascript html5 firefox datetimepicker

我正在使用这个非常基本的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,我得到了同样糟糕的结果。

有没有更好的方法来测试元素支持?

1 个答案:

答案 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
}

我希望我有更好的答案...