【发布时间】:2012-01-04 21:59:42
【问题描述】:
我需要测试占位符支持。以下适用于所有现代浏览器以及 IE7、IE8、IE9:
$.support.placeholder = (function () {
var i = document.createElement("input");
return "placeholder" in i;
}());
它有效,但 JSLint 抱怨 in 的使用:
意外的“进入”。与未定义比较,或使用 hasOwnProperty 方法来代替。
好的,所以我将它重构为:
$.support.placeholder = (function () {
var i = document.createElement("input");
return i.hasOwnProperty("placeholder");
}());
现在它通过了 JSLint,没有任何错误或警告,但它在 IE7 和 IE8 中以这个旧栗子中断:
对象不支持属性或方法“hasOwnProperty”
知道如何让 JSLint 以及 IE7 和 IE8 快乐吗?
【问题讨论】:
-
只要你知道自己在做什么,让 jslint 这样的工具快乐并不一定意味着让你的代码更好。如果你的老板想要,给他们一些证明他们愚蠢的好例子。
-
我不明白为什么 jslint 不推荐
in。它已经存在了一段时间,所以应该得到充分的支持,而且非常直观。对于占位符支持,这是可靠的:github.com/mathiasbynens/jquery-placeholder
标签: javascript html placeholder jslint browser-feature-detection