jan*_*alk 15 javascript placeholder
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(' '));
我错过了什么?
jan*_*alk 14
创建一个新的原始输入元素解决了我的问题.
var nativePlaceholderSupport = (function() {
var i = document.createElement('input');
return i.placeholder !== undefined;
})();
if(nativePlaceholderSupport){
return false;
}
var nativePlaceholderSupport = (function(){
var i = document.createElement('input');
return ('placeholder' in i);
})();
if(nativePlaceholderSupport){
return false;
}
谢谢RobG,你带我去了.
| 归档时间: |
|
| 查看次数: |
11956 次 |
| 最近记录: |