Necesito comprobar el soporte del marcador de posición. Los siguientes funciona muy bien en todos los navegadores modernos, así como IE7, IE8, IE9:Detección de características de marcador de posición HTML5
$.support.placeholder = (function() {
var i = document.createElement("input");
return "placeholder" in i;
}());
Funciona, pero JSLint se queja del uso de in
:
inesperado 'en'. Compare con undefined, o use el método hasOwnProperty en su lugar.
bien, así que voy a refactorizar a esto:
$.support.placeholder = (function() {
var i = document.createElement("input");
return i.hasOwnProperty("placeholder");
}());
Ahora bien, esto pasa JSLint sin ningún tipo de error o advertencia, pero se rompe en IE7 e IE8 con esta vieja historia:
objeto no admite la propiedad o método 'hasOwnProperty'
alguna idea de cómo hacer JSLint feliz, como lo ll como IE7 e IE8?
Hacer una herramienta como jslint happy no significa necesariamente mejorar el código siempre que sepa lo que está haciendo. Si tus jefes lo quieren, dales buenos ejemplos para demostrar que son estúpidos. – ThiefMaster
No sé por qué jslint recomienda contra 'in'. Ha existido por un tiempo, por lo que debería contar con un soporte completo y es bastante intuitivo. Para soporte de marcador de posición, esto es sólido: https://github.com/mathiasbynens/jquery-placeholder – ryanve