tldr: 为什么 ('placeholder' in inputElemnt) 在 IE8 中等于 true,尽管不支持 placeholder 属性?(元素中的属性)不是检查本机支持的好方法吗?Javascript 库 Modernizer 使用它。
长:
我有一个名为 Defaultvalue ( http://unwrongest.com/projects/defaultvalue/ ) 的小型 Jquery 插件。我有一个名为 Placeholder 的小型 Jquery 插件(https://github.com/janjarfalk/jquery.placeholder.js)。它基本上是 HTML5 占位符属性的后备。
在最近的更新中,我添加了这三行代码。如果浏览器对占位符属性具有本机支持,希望 Defaultvalue 不会运行。
if('占位符'在这个){ // 这是一个输入元素 返回假; }
它似乎适用于除 IE8 和 IE7 之外的大多数浏览器。出于某种原因,它在其中找到了关键的“占位符”,但我认为在 IE7/IE8 中没有对占位符属性的任何支持。
我的代码受到 Javascript 库 Modernizer ( http://www.modernizr.com/ )中的这段代码的启发。
(功能(道具){ for (var i = 0, len = props.length; i < len; i++) { attrs[ props[i] ] = !!(props[i] in inputElem); } 返回属性; })('自动完成自动对焦列表占位符 max min multiple pattern required step'.split(' '));
我错过了什么?