versión omitir off navegador modo instálate google esta cómo cual compatible compatibilidad chrome activar html html5 forms google-chrome html-form

html - omitir - cómo activar el modo de compatibilidad en google chrome



"Autocompletar=Desactivado" no funciona en el navegador Google Chrome (6)

El atributo autocomplete es nuevo en HTML5 .

Dado que no ha mencionado el DOCTYPE , creo que esta es la única razón posible podría ser esta. Para más detalles, consulte MDN''s Cómo desactivar el autocompletado de formularios .

Intenta agregar el siguiente HTML5 DOCTYPE .

<!DOCTYPE html>

FYI: En algunos navegadores, es posible que deba activar una función de autocomplete para que esto funcione (consulte en "Preferencias" en el menú del navegador).

Lo está utilizando de forma correcta al mencionar el atributo autocomplete en el elemento de form . Sin embargo, no es necesario que se mencione por separado para input etiqueta de input .

<form autocomplete="off" id="search_form" method="post" action=""> <input type="text" /> </form>

Actualización: Aquí puede encontrar una lista de soluciones en atributo de autocompletar y documentos web usando XHTML .

Esta pregunta ya tiene una respuesta aquí:

Sé que hay una pregunta similar en Stackoverflow, pero ninguna de las soluciones funcionó para mí.

<form autocomplete="off" id="search_form" method="post" action=""> <input autocomplete="off" type="text" /> </form>

Como puede ver, puse autocomplete=off en AMBOS el formulario y el campo de entrada, pero Google Chrome aún muestra esta lista de autocompletado. Esto no sucede en otros navegadores como Firefox y Safari.

¿Cualquier otra solución que no sea autocomplete=off en la etiqueta del formulario?


Este parece ser un problema recurrente en Google Chrome, aunque agregar autocompletar al formulario funcionó en mi compilación. Tal vez en las versiones más recientes ya no.

Esto es un hack. Dale a tu entrada una identificación, di foo , y en JavaScript:

if (navigator.userAgent.toLowerCase().indexOf(''chrome'') >= 0) { setTimeout(function () { document.getElementById(''foo'').autocomplete = ''off''; }, 1); }

Compruebe si esto funciona para usted. El único inconveniente sería que para aquellos que usan Chrome y tienen JavaScript deshabilitado, el campo aún se completará automáticamente.


Esto se debe a una decisión de diseño tomada por Chrome (posiblemente, cualquier usuario de Chrome quiere este comportamiento).

La razón de esto es lo que Google llama prioridad de las circunscripciones :

  1. ¡El usuario es el rey! Lo que más quieren es lo que quieren.
  2. El usuario quiere usar una contraseña o un administrador de autocompletar.
  3. La aplicación web dice que no quiere que se guarden los valores del formulario.
  4. La elección del usuario es más importante, por lo que los valores del formulario se conservan.

Hay formas de solucionarlo, pero es muy probable que se solucionen en futuras versiones de Chrome, ya que los desarrolladores de Chrome consideran que su comportamiento es correcto y su solución como un error.

Incluso aunque su solución funcione, crea un comportamiento confuso para el usuario: esperan que el llenado automático funcione de acuerdo con su configuración.

Muchos usuarios ya optaron por ignorar la configuración de autocompletar de la aplicación con complementos o scripts que simplemente eliminan cualquier autocompletado = desactivado en la página; ya tenían esa opción de todos modos.

Lo mejor es diseñar con la suposición de que el autocompletar puede funcionar y dar cuenta de eso.

Personalmente, odio que los sitios no recuerden mi contraseña y anulen aquellos que lo hacen con las extensiones del navegador. Sin embargo, también creo aplicaciones para mi trabajo y recordar las contraseñas se ve como un riesgo de seguridad, ya que un usuario puede dejar su máquina desbloqueada. En mi opinión personal, los usuarios que no bloquean sus máquinas son un problema para la TI local, no para la aplicación, y la TI local puede deshabilitar todas las contraseñas con autocompletado para todas las aplicaciones web si no se puede confiar en sus usuarios.

Desafortunadamente para pasar las comprobaciones de seguridad, algunas aplicaciones aún tienen que deshabilitar el autocompletado, hay maneras de hacerlo, pero todas son horribles. El primer truco es hacer que la entrada de contraseña sea completamente nueva:

<input type="hidden" name="password" id="realPassword" /> <input type="password" name="{randomly generated}" onchange="document.getElementById(''realPassword'').value = this.value" />

He incluido todo para simplificar, pero esto debería darle una idea del hackeo: ningún complemento o navegador puede completar automáticamente una entrada con un nombre completamente nuevo.

Esta solución se interrumpe si crea correctamente ARIA y etiquetas (ya que esto permite que el navegador / extensión encuentre y complete automáticamente la entrada de la etiqueta).

Así que la opción 2, también horrible, es esperar hasta después de que se haya activado el autocompletar y luego dejar en blanco el campo:

<input type="text" name="username" onchange="window.setTimeout(function() { document.getElementById(''password'').value = ''''; }, 100)" /> <input type="password" id="password" />

Como he dicho, desagradable.


Intenta esto, trabajó para mí después de jugar un poco

if ( navigator.userAgent.toLowerCase().indexOf(''chrome'') >= 0 ) { $(''input[autocomplete="off"]'').each( function(){ var type = $(this).attr( ''type''); $(this).attr( ''type'', ''_'' + type ); $(this).attr( ''type'', type ); }); }


Puede ser un error en Google Chrome, no puedes hacer trampa al crear una entrada oculta. La función de completar automáticamente obtendrá el primer texto de entrada para completar los datos.

<form autocomplete="off" id="search_form" method="post" action=""> <input type="text" style="display:none" /> <input autocomplete="off" type="text" /> </form>


Si está utilizando la llamada AJAX para enviar datos a backend. Después de completar la llamada AJAX, los campos de contraseña deben estar claros. Entonces no se abrirá la solicitud de guardar contraseña.

Por ejemplo: $ (# foo) .val ("");