如何测试浏览器是否支持本机占位符属性?

Jan*_*nis 47 testing jquery html5 placeholder

我正在尝试为我的网站编写一个简单的占位符jQuery插件,但当然我只想在不支持本机占位符属性的情况下触发该函数...

如何使用jQuery测试占位符属性的本机支持?

lon*_*day 93

您可以$.support通过在您编写的Javascript顶部插入此内容来轻松添加:

jQuery.support.placeholder = (function(){
    var i = document.createElement('input');
    return 'placeholder' in i;
})();
Run Code Online (Sandbox Code Playgroud)

然后,您可以在代码中使用任意一个$.support.placeholderjQuery.support.placeholder任何位置.

NB此代码改编自diveintohtml5,由hellvinz上面提供的链接.

  • 我喜欢这个解决方案(如果你没有使用Modernizr),但是i`中的''占位符'实际上比`i.placeholder!== undefined`更重要,因为脚本有在执行检查之前映射所有对象属性.这不是一个很大的改变,但是一切都很重要,一般来说,如果可能的话,应该避免[某些对象]中的"[某些att]". (8认同)

End*_*der 15

使用Modernizr库,您可以在此处找到:http://www.modernizr.com/

然后这样做:

if (Modernizr.input.placeholder) {
  // your placeholder text should already be visible!
} else {
  // no placeholder support :(
  // fall back to a scripted solution
}
Run Code Online (Sandbox Code Playgroud)

Modernizr非常方便用于测试浏览器对几乎所有HTML5功能的支持.