在这里似乎无法找到一个无Modernizr的解决方案,但是如何检测对特定输入类型的支持,而不是属性?
例如,对于属性:
var supportsRequired = 'required' in document.createElement('input')
if (supportsRequired) {
// support
} else {
// no support
}
使用输入类型有一种简单的方法吗?我不想做的一件事是,如果不支持,则“交换”输入类型。有没有类似的东西,只测试?...
var supportsEmailType = 'email' in input.type
if (supportsEmailType) {
// support
} else {
// no support
}
任何帮助表示感谢。
答案 0 :(得分:2)
来自here:
如果您的浏览器支持该特定输入类型,则type属性将保留您设置的值。如果您的浏览器不支持该特定输入类型,它将忽略您设置的值,并且type属性仍为“text”。
这将正确检测是否支持“电子邮件”类型,您可以重复使用该功能来检测其他类型:
if (supportsInputType('email')) {
// support
} else {
// no support
}
function supportsInputType(type){
var i = document.createElement('input');
i.setAttribute('type', type);
return i.type === type;
}