Принудительное сохранение формы автозаполнения на iPad

В то время как на некоторых веб-сайтах iPad Safari автоматически запрашивает сохранение данных формы, таких как Us/Pwd, на других страницах он никогда не запрашивает то же самое.

Как мы можем заставить его запрашивать сохранение данных формы на любом веб-сайте?

Ответы (1)

Добавьте следующий букмарклет в сафари:

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)();

Вам нужно будет знать, как манипулировать существующей закладкой, чтобы вставить эту небольшую программу в то место, где закладка обычно имеет URL-адрес. Именно так такие программы, как Instapaper , Pocket и другие, используют букмарклет (который на самом деле представляет собой программу, хранящуюся как закладку) для изменения или действия на странице, которую вы сейчас просматриваете.

Поскольку вы всегда должны быть немного подозрительны, когда кто-то публикует программу для запуска — вот более четкая версия, которая показывает, что мы просто перебираем все элементы и слепо включаем автозаполнение для каждого.

Это компенсирует ошибки веб-разработчиков, которые забыли или намеренно не включили автозаполнение.


Тот же скрипт, что и выше, но красиво отформатированный и без оболочки букмарклета:

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.")
}
Можете ли вы добавить какое-то объяснение относительно того, какова цель букмарклета, как он работает? Это помогло бы уменьшить беспокойство потенциальных пользователей о загрузке букмарклета из более или менее анонимного источника.
да, конечно... я также хотел бы понять, как это использовать...