tldr: 尽管没有对占位符属性的原生支持,为什么(在inputElemnt中'placeholder')在IE8中等于true?不是(元素中的属性)检查本机支持的好方法吗?Javascript库Modernizer使用它.
长:
我有一个名为Defaultvalue的小型Jquery插件(http://unwrongest.com/projects/defaultvalue/).我有一个名为Placeholder的小型Jquery插件(https://github.com/janjarfalk/jquery.placeholder.js).它基本上是HTML5占位符属性的后备.
在最近的更新中,我添加了这三行代码.希望如果浏览器本身支持占位符属性,则不会运行Defaultvalue.
if('placeholder' in this){
// this is an input-element
return false;
}
它似乎适用于除IE8和IE7之外的大多数浏览器.由于某种原因,它在此找到关键的"占位符",但我认为,IE7/IE8中没有对占位符属性的任何支持.
我的代码受到了Javascript库Modernizer(http://www.modernizr.com/)中此代码的启发.
(function(props) {
for (var i = 0, len = props.length; i < len; i++) {
attrs[ props[i] ] = !!(props[i] in inputElem);
}
return attrs;
})('autocomplete autofocus list placeholder max min multiple pattern required step'.split(' '));
我错过了什么?
我有这样的元素<input type="text" placeholder="lorem ipsum">.
如何placeholder在CSS中设置此属性的样式,以便它适用于所有浏览器?