如何检查浏览器是否支持<input type ="time"/>

Keh*_*mme 13 html javascript asp.net-mvc html5 razor

有没有办法在HTML,JavaScript或Razor中检测浏览器是否支持<input type="time" />元素?

提前致谢.

coo*_*ter 22

分配给元素的.type属性时,将拒绝无效的值input.

try {
    var input = document.createElement("input");

    input.type = "time";

    if (input.type === "time") {
        console.log("supported");
    } else {
        console.log("not supported");
    }
} catch(e) {
    console.log("not supported");
}
Run Code Online (Sandbox Code Playgroud)

如果有一些我不知道的浏览器问题,那么使用也.innerHTML应该这样做.

var div = document.createElement("div");
div.innerHTML = "<input type='time'>";

if (div.firstChild.type === "time")
    console.log("supported");
else
    console.log("not supported");
Run Code Online (Sandbox Code Playgroud)

  • @cookiemonster:我并不是说这不是一个好的答案.抛出异常表明浏览器不支持它.:-)我很惊讶(但很高兴)发现在异常和回到"文本"之间,检测似乎是可能的.我想知道为什么[Modernizr说它们无法检测到它](http://modernizr.com/docs/#inputtypes). (2认同)
  • @TJCrowder:您链接的部分是*"Modernizr无法检测到日期输入创建了一个日期选择器,颜色输入创建了一个颜色选择器,依此类推 - 它将检测输入值是否根据规范进行清理."*,其中,据我所知,这意味着Modernizer不能保证`color`输入真的被渲染为颜色选择器,但它可以检测`color`是否是一个有效的`type`值(基于卫生). (2认同)