为什么 Firefox 不遵守标准 javascript 支持元素测试
Why is Firefox not respecting the standard javascript support element test
我正在使用这个非常基本的 javascript 测试来测试对 datetime and/or 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 得到了同样糟糕的结果。
是否有更好的方法来测试元素支持?
This is a bug in Firefox Mobile. 尽管 UI 对话框运行良好,但 DOM 接口中的 none 目前已实现。在 DOM 中,<input type="datetime" />
看起来和感觉上仍然像 <input type="text" />
,没有明显的检测方法。
根据您的应用程序,您可以为 Firefox Mobile 创建一个特例(不幸的是浏览器嗅探)。或者,您可以 强制 将 type
设为 "text"
以确保没有浏览器会尝试为其使用自己的 UI:
var delm =document.createElement("input")
delm.setAttribute("type", "datetime");
if (delm.type != "datetime") {
delm.type = "text"; // prevent double dialogs
// do some custom datepicker
}
我希望我能为您提供更好的答案...
我正在使用这个非常基本的 javascript 测试来测试对 datetime and/or 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 得到了同样糟糕的结果。
是否有更好的方法来测试元素支持?
This is a bug in Firefox Mobile. 尽管 UI 对话框运行良好,但 DOM 接口中的 none 目前已实现。在 DOM 中,<input type="datetime" />
看起来和感觉上仍然像 <input type="text" />
,没有明显的检测方法。
根据您的应用程序,您可以为 Firefox Mobile 创建一个特例(不幸的是浏览器嗅探)。或者,您可以 强制 将 type
设为 "text"
以确保没有浏览器会尝试为其使用自己的 UI:
var delm =document.createElement("input")
delm.setAttribute("type", "datetime");
if (delm.type != "datetime") {
delm.type = "text"; // prevent double dialogs
// do some custom datepicker
}
我希望我能为您提供更好的答案...