Запретить использовать кнопку назад, чтобы увидеть информацию на предыдущей странице - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть форма, где пользователи вводят данные. Я хочу не дать другому человеку вернуться назад, используя кнопку «Назад», и посмотреть, что ввел первый человек.

Я понимаю, что это проблема только в том же браузере и т. Д., Но иногда это может быть проблемой.

Я пробовал оба Server.Transfer() и Response.Redirect(), но оба это не мешают. Я также попытался установить текст Textboxes (asp:TextBox), чтобы он был пустым в обработчике событий для кнопки отправки в codebehind, но он все еще не работал, так как передача переопределяла это.

Технология это WebForms. Это дано. Я делаю все в codebehind, и предпочел бы решить это оттуда, если это возможно.

1 Ответ

1 голос
/ 04 апреля 2019

Очистка данных из бэкэнда (codebehind) будет слишком запоздалой, поскольку, как вы говорите, перенаправление произойдет до того, как произойдет изменение.

Вместо этого я предлагаю вам использовать Javascript на внешнем интерфейсе, подпишитесь наwindow.onbeforeunload и используйте его, чтобы очистить страницу перед перенаправлением.

Пример реализации может выглядеть следующим образом:

window.addEventListener("beforeunload", function() {
    var inputs = document.getElementsByTagName("input");

    //Iterate all <input> elements on the page.
    for(var i = 0; i < inputs.length; i++) {
        var input = inputs[i];

        //Ignore all elements that don't have type="text" or type="password" (we don't want to clear buttons, etc.).
        if(["text", "password"].indexOf(input.type.toLowerCase()) < 0) { continue; }

        //Clear the element's value.
        input.value = "";
    }
});

Я дал ему краткое описаниеtest: прямо перед перенаправлением вы заметите, что текстовые поля очищены, а когда вы вернетесь, нажав кнопку «Назад», текстовые поля все еще пусты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...