Проблемы с обнаружением функции заполнителя HTML5

Мне нужно проверить поддержку заполнителей. Следующее отлично работает во всех современных браузерах, а также в IE7, IE8, IE9:

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

Это работает, но JSLint жалуется на использование в :

Неожиданный вход. Сравните с undefined или используйте вместо него метод hasOwnProperty .

Хорошо, поэтому я реорганизую его так:

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

Теперь он передает JSLint без каких-либо ошибок или предупреждений, но он ломается в IE7 и IE8 из-за этого старого каштана:

Объект не поддерживает свойство или метод hasOwnProperty

Есть идеи, как сделать JSLint счастливым, а также IE7 и IE8?

11
задан Sam Hanley 2 May 2015 в 01:39
поделиться