javascript - HTML5 占位符功能检测问题

标签 javascript html placeholder jslint browser-feature-detection

我需要测试占位符支持。以下内容适用于所有现代浏览器以及 IE7、IE8、IE9:

$.support.placeholder = (function () {
    var i = document.createElement("input");
    return "placeholder" in i;
}());

有效,但 JSLint 提示 in 的使用:

Unexpected 'in'. Compare with undefined, or use the hasOwnProperty method instead.

好吧,我将把它重构为:

$.support.placeholder = (function () {
    var i = document.createElement("input");
    return i.hasOwnProperty("placeholder");
}());

现在这通过了 JSLint,没有任何错误或警告,但它在 IE7 和 IE8 中用这个老栗子打破了:

Object doesn't support property or method 'hasOwnProperty'

知道如何使 JSLint 以及 IE7 和 IE8 快乐吗?

最佳答案

您还可以使用 JSLint 建议的其他解决方案:

return typeof i.placeholder !== 'undefined';

这应该可以毫无问题地跨浏览器工作。

关于javascript - HTML5 占位符功能检测问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8245093/

相关文章:

html - CSS:在悬停时为按钮添加边框。如何避免以下元素的转移?

javascript - 用于检测 Javascripts 事件的工具

javascript - JOI - 验证复杂对象

javascript - Express 服务器为我的静态文件提供服务,但不处理对我的 API 的请求。怎么了?

jquery - 使用 jquery 动态地在 img 标签后追加 div

ios - 通过代码更改搜索占位符

javascript - 为什么我的大写函数没有按预期运行?

html - 带有CSS动画的元素方向控制

PHP 将日期格式插入输入的 "placeholder"

html - 占位符文本未出现在文本区域中