Избегать того, чтобы страница была перезагружена, нажав F5 с javascript

Я хочу избежать того, чтобы страница перезагрузила, когда кто-то нажимает F5, первый раз, на который он нажимает, функционирует, но если он нажимает снова, перезагружена страница, это, которое у меня есть кода:

$(function () {
    $(document).keydown(function (e) {
        var code = (e.keyCode ? e.keyCode : e.which);
        if (code == 116 && $('#recargar').html() == 0) {
            e.preventDefault();
            confirm('Si recarga la página perdera todos los datos ingresados,<br> ¿Deseas recargar la página?"', function (result) {
                if (result) {
                    location.reload();
                } else {
                    recargar = false;
                }
            });
        }
    });
});
3
задан 29.12.2016, 19:14
0 ответов

Он советовал бы тебе, чтобы ты ничего не блокировал, лучшее состояло бы в том, чтобы сохранять твою информацию о локальном способе, и хотя пользователь освежит браузер твои переменные будут пребывать вне опасности.

Ты был бы должен использовать localStorage или sessionStorage

Ты можешь хранить до 5 mb информации немного теории:

LocalStorage: Сохраняй информацию, которая будет пребывать хранившейся неопределенным временем; не импортируя, что браузер закрылся.

sessionStorage: Храни данные о сеансе и эти удаляются, когда браузер закрывается.

Ваш способ использования: ты сохраняешь как в array

localStorage.setItem("nombre", variable );

чтобы возвращать информацию:

var cAux = localStorage.getItem("nombre");

я оставляю тебе функциональный пример, протестируй это локально, в SOes оно не функционирует не потому что

$(document).ready(function(){  
   $('#boton-guardar').click(function(){        
var nom = document.getElementById("capNombre").value;
var ap= document.getElementById("capApellido").value;
localStorage.setItem("Nombre", nom);
localStorage.setItem("Apellido", ap);
document.getElementById("capNombre").value = "";
document.getElementById("capApellido").value = "";
   });  
});

$(document).ready(function(){  
   $('#boton-cargar').click(function(){     
var nombre = localStorage.getItem("Nombre");
var apellido = localStorage.getItem("Apellido");
document.getElementById("nombre").innerHTML = nombre;
document.getElementById("apellido").innerHTML = apellido;
   });  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input type="text" placeholder="Nombre" id="capNombre">
<input type="text" placeholder="Apellido" id="capApellido">
<button id="boton-guardar">Guardar</button>
<button id="boton-cargar">Cargar elementos</button>
<div id="nombre">
<div id="apellido">  
4
ответ дан 03.12.2019, 17:56
  • 1
    ¿ Почему сохранять помещение? А именно, что гарантирует тебя, что пользователь будет использовать тот же desktop, labtop, browser, или если он это использует в способе incó gnito. –  29.12.2016, 17:50
  • 2
    @MarcosGallardo то же самое произойдет с примером, который ставит в вопросе –  29.12.2016, 18:03
  • 3
    ¿ Что является тем, что sucederí в? Я не понял в тот, что ты имеешь в виду. –  29.12.2016, 18:41

Этой форма была бы должна тебе функционировать всегда. уже testee. Привет

function Verificar()
{
var tecla=window.event.keyCode;
if (tecla==116) {
 confirm('Si recarga la página perdera todos los datos ingresados,<br> ¿Deseas recargar la página?"', function (result) {
     if (result) {
           location.reload();
      } else {
           event.keyCode=0;
event.returnValue=false;
      }
}); 

}
}
<body onKeyDown="javascript:Verificar()">
0
ответ дан 03.12.2019, 17:56

Чтобы избегать того, чтобы он был перезагружен, закрыл страницу или перешел с одного сайта на другой в другую, смоги использовать window.onbeforeunload.

Существует вирус в Chrome y Firefox 4+, цепь текста не показывает себе пользователя.

Пример:

document.getElementById('recargar').addEventListener('click', function() {
  document.location.reload();
});
document.getElementById('desactivar').addEventListener('click', function() {
  window.removeEventListener('beforeunload', askConfirmation);
});

function askConfirmation (evt) {
  var msg = 'Si recarga la página perdera todos los datos ingresados.\n¿Deseas recargar la página?';
  evt.returnValue = msg;
  return msg;
}
window.addEventListener('beforeunload', askConfirmation);
<button id="recargar">Recargar</button>
<button id="desactivar">Des-activar confirmación</button>
0
ответ дан 03.12.2019, 17:56