Forzar formulario de autocompletar guardado en iPad

Mientras que en algunos sitios web, iPad Safari solicita automáticamente guardar datos de formulario como Us/Pwd, en otras páginas, nunca solicita lo mismo.

¿Cómo podemos obligarlo a solicitar datos de formulario guardados en cualquier sitio web?

Respuestas (1)

Agregue el siguiente bookmarklet a safari:

javascript:(function()%7Bvar%20ca,cea,cs,df,dfe,i,j,x,y;function%20n(i,what)%7Breturn%20i+%22%20%22+what+((i==1)?%22%22:%22s%22)%7Dca=cea=cs=0;df=document.forms;for(i=0;i%3Cdf.length;++i)%7Bx=df%5Bi%5D;dfe=x.elements;if(x.onsubmit)%7Bx.onsubmit=%22%22;++cs;%7Dif(x.attributes%5B%22autocomplete%22%5D)%7Bx.attributes%5B%22autocomplete%22%5D.value=%22on%22;++ca;%7Dfor(j=0;j%3Cdfe.length;++j)%7By=dfe%5Bj%5D;if(y.attributes%5B%22autocomplete%22%5D)%7By.attributes%5B%22autocomplete%22%5D.value=%22on%22;++cea;%7D%7D%7Dalert(%22Removed%20autocomplete=off%20from%20%22+n(ca,%22form%22)+%22%20and%20from%20%22+n(cea,%22form%20element%22)+%22,%20and%20removed%20onsubmit%20from%20%22+n(cs,%22form%22)+%22.%20After%20you%20type%20your%20password%20and%20submit%20the%20form,%20the%20browser%20will%20offer%20to%20remember%20your%20password.%22)%7D)();

Necesitará saber cómo manipular un marcador existente para pegar este pequeño programa en el lugar donde un marcador normalmente tiene la URL. Así es exactamente como programas como Instapaper y Pocket y otros usan un marcador (que en realidad es un programa almacenado como un marcador) para cambiar o actuar en la página que está navegando actualmente.

Dado que siempre debe sospechar un poco cuando alguien publica un programa para que lo ejecute, aquí hay una versión más clara que muestra que simplemente repasamos todos los elementos y activamos ciegamente la función de autocompletar para cada uno.

Esto compensa a los desarrolladores web que olvidaron o intencionalmente no habilitaron el autocompletado.


El mismo script que el anterior, pero con un formato agradable y sin el envoltorio de bookmarklet:

function () {
    var ca, cea, cs, df, dfe, i, j, x, y;

    function n(i, what) {
        return i " "
        what((i == 1) ? "" : "s")
    }
    ca = cea = cs = 0;
    df = document.forms;
    for (i = 0; i < df.length; i) {
        x = df[i];
        dfe = x.elements;
        if (x.onsubmit) {
            x.onsubmit = "";
            cs;
        }
        if (x.attributes["autocomplete"]) {
            x.attributes["autocomplete"].value = "on";
            ca;
        }
        for (j = 0; j < dfe.length; j) {
            y = dfe[j];
            if (y.attributes["autocomplete"]) {
                y.attributes["autocomplete"].value = "on";
                cea;
            }
        }
    }
    alert("Removed autocomplete=off from "
    n(ca, "form")" and from "
    n(cea, "form element")", and removed onsubmit from "
    n(cs, "form")". After you type your password and submit the form, the browser will offer to remember your password.")
}
¿Puede agregar alguna explicación sobre cuál es el propósito del bookmarklet de todos modos? Esto ayudaría a reducir las preocupaciones de los usuarios potenciales de cargar un bookmarklet desde una fuente más o menos anónima.
sí, claro... también me gustaría entender cómo usar esto...