2010-02-24 17 views
12

Con onclick="history.go(-1);return false;" el usuario puede navegar hacia atrás. Pero si quiero poner un método de confirmación antes de que lleve al usuario a la parte posterior. ¿Como podría hacerlo?¿Cómo configurar javascript para enviar al usuario a la página de atrás? vea el código

Creo que se puede lograr haciendo algo como lo siguiente pero no estoy seguro de cómo redirigir al usuario a la página de atrás?

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     //window.close(); 
     // how to redirect to history.go(-1) ?? 
    }   
    return false; 
}); 

ACTUALIZACIÓN

También hay alguna manera de que pueda comprobar si la historia tiene algunos valores en ella o está vacía? ¿Para que pueda alertar al usuario si está vacío?

Respuesta

29

Es tan simple como usted piensa que es:

$('.clickme').click(function() { 
    if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.go(-1); 
    }   
    return false; 
}); 
+0

oh yo, hubiera intentado primero antes de preguntar. Déjame intentarlo. – user187580

+0

¿hay alguna manera de verificar si hay "algo" en la historia ... es decir, no está vacío, etc.? – user187580

+0

Existe una propiedad history.previous pero como dice JSRef * requiere el privilegio UniversalBrowserRead. No tiene valor si no tienes este privilegio. Para obtener información sobre seguridad, consulte la Guía de JavaScript del lado del cliente. * – anddoutoi

9

Prueba esto:

if(confirm("Are you sure you want to navigate away from this page?")) 
    { 
     history.back(); 
    }  
+0

se puede poner en onclick = "return confirm ('confirm message')"; ?? – user187580

+0

¿Lo has probado? –

+0

sí se puede poner allí, pruébelo. – Sarfraz

3
$('.clickme').click(function() { 
     if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       history.go(-1); 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 
1
<script type="text/javascript" language="javascript"> 

function goBack() 
{ 
window.history.back() 
} 

window.onkeyup = function (e) 
{ 
if (e.keyCode == 27) window.history.back(); 
} 
</script> 

Añadir por encima de código en su sección de cabecera de la página. Aquí cada vez que el usuario presione Esc, se lo redireccionará a la página de vista anterior y si queremos agregar esta lógica al botón Atrás, presione simplemente llamar al goback() al hacer clic en evento.

1
$('.clickme').click(function() { 
    if(history.length != 0) 
     { 
      if(confirm("Are you sure you want to navigate away from this page?")) 
      { 
       document.location.replace(document.referrer) 
      } 
     return false; 
     } 
     alert("No history found"); 
     return false; 
}); 

(Este código se basa principalmente en la respuesta de Dodswarm.)

Cuestiones relacionadas