Inicio > Desarrollo > JavaScript, Deshabilitar Boton Atrás

JavaScript, Deshabilitar Boton Atrás

Jueves, 26 de Febrero de 2009

Muchas veces me ha tocado comerme la cabeza con historias de este tipo, como putear al navegador y al usuario para que no puedan ir hacia atrás en el histórial de navegación.

El problema en la mayoría de los casos es porque en ciertas páginas (tiendas, aplicaciones, intranets) es necesario deshabilitar esta funcion por motivos de seguridad y/o para prevenir errores.

Es un método sencillo de implementar, ya que con una pequeña función javascript en la etiqueta <head> de nuestra página vamos a podercapar el navegador a la hora de rebobinar el historial:

  1. <script type="text/javascript">
  2. if (window.history) {
  3.         function noBack(){window.history.forward()}
  4.         noBack();
  5.         window.onload=noBack;
  6.         window.onpageshow=function(evt){if(evt.persisted)noBack()}
  7.         window.onunload=function(){void(0)}
  8. }
  9. </script>

Y listo, molto faccile e divertente y funciona en casi todos los navegadores, al menos en ie6, ie7 y firefox1, 2 y 3. No obstante recordar que esta función no es compatible con páginas que requieran la certificación de accesibilidad WCAG, además es un tema que irrita de sobremanera a algunos usuarios (entre los que me incluyo) y puede hacer que estos empiezen a jurar en lenguas anteriores al imperio Persa.

Demo funcional del script | descargar demo_no_atras.zip

gracias developer.mozilla.org

  • Share/Bookmark

, , , , , ,

  1. ivan asael
    Sábado, 16 de Mayo de 2009 a las 06:56 | #1

    muyy muyy buen codigo gracias la verdad anda buscando una que funcionara con mozilla porque ninguno funcionaba con mozila pero este me saca de muchos apuros gracias me funciono muy bien

  2. Maurobej
    Sábado, 29 de Agosto de 2009 a las 03:58 | #2

    Sencillo pero efectivo. Gracias .

  3. Edgar Maldonado
    Miércoles, 11 de Noviembre de 2009 a las 11:33 | #3

    Hola, he probado este código usando el IE8 (Windows) y el FireFox 3.0.10 (Windows y Linux) y en ninguno de los tres navegadores me ha funcionado. Básicamente lo que he hecho es crear un jsp donde el body lo único que tiene es un mensaje que dice “Bienvenido” y en el head he puesto el script y nada de nada.

    Si alguien tiene alguna idea de porque no me ha funcionado, agradecería cualquier ayuda.

    Saludos.

  4. Jesus Daniel
    Domingo, 29 de Noviembre de 2009 a las 19:36 | #4

    Muy bien codigo…gracias en realidad buscaba uno que funcara en casi todos los navegadores…..solo habia encontrado para IE, ya ves el monopolio.

    Asi queda el codigo :

    Prueba 1

    if (window.history) {
    function noBack(){window.history.forward()}
    noBack();
    window.onload=noBack;
    window.onpageshow=function(evt){if(evt.persisted)noBack()}
    window.onunload=function(){void(0)}
    }

    Ejemplo

    Ir a 1

  5. Jesus Daniel
    Domingo, 29 de Noviembre de 2009 a las 19:39 | #5

    Muy bien codigo…gracias en realidad buscaba uno que funcara en casi todos los navegadores…..solo habia encontrado para IE, ya ves el monopolio.

    Asi queda el codigo :

    1.
    2. Prueba 1
    3.
    4. if (window.history) {
    5. function noBack(){window.history.forward()}
    6. noBack();
    7. window.onload=noBack;
    8. window.onpageshow=function(evt){if(evt.persisted)noBack()}
    9. window.onunload=function(){void(0)}
    10. }
    11.
    12.
    13.
    14. Ejemplo

    Ir a 1

  6. Hersheys
    Jueves, 1 de Abril de 2010 a las 17:23 | #6

    PROBE TODOS LOS EJEMPLOS DE ESTA PAGINA WEB Y NINGUNO SIRVIO. LOS PROBE BAJO IE8 Y NADA, IGUAL LA PAGINA DE JESUS DANIEL DE ERROR PERSONALIZADO ME PERMITE EL BOTÒN BACK, O ATRÁS, REGRESAR A ESTA PÁGINA QUE VISUAIZAMOS AHORITA… :( :( :( EN RESUMEN —>> NO FUNCIONA EL SCRIPT

  7. chufol
    Martes, 13 de Abril de 2010 a las 11:17 | #7

    Hola Hersheys,

    Actualizé el artículo y puse una demo del script funcionando, así como un zip para poder bajarte los archivos. A mi me funciona bien en varios IE8, no obstante, en local, este navegador me pide permiso para ejecutar un script, si aceptamos va de lujo. Una vez publicada la página no te pide confirmación y funciona también.

    Salu2

  8. sherman2105
    Jueves, 3 de Junio de 2010 a las 05:47 | #8

    El script me funciono perfectamente de verdad muy bueno!!!!!!

  9. chufol
    Martes, 8 de Junio de 2010 a las 15:50 | #9

    Gracias Sherman! un placer poder ayudar a la comunidad de desarrolladores! salu2 :D

  10. Silflo
    Martes, 6 de Julio de 2010 a las 20:23 | #10

    Sabes que funciona bastante bien pero tengo un formulario con un boton guardar y no lo ejecuta, sabes por qué?

  11. fidel perez
    Miércoles, 18 de Agosto de 2010 a las 17:18 | #11

    muy buen codigo.. me sirvió de mucho.. gracias

  12. Eduardo
    Miércoles, 18 de Agosto de 2010 a las 22:36 | #12

    Amigo el codigo funciona perfect pero por alguna razon no deja ejecutar los demas script que tengo en la pagina. Me ayudan con eso?

  13. rodmen
    Martes, 31 de Agosto de 2010 a las 23:03 | #13

    Gracias !! buenísimo !!

  14. Angel’s
    Lunes, 13 de Septiembre de 2010 a las 19:03 | #14

    Desamasiado bueno…tanto buscar hasta que por fin encontre algo que funciona….

  15. Miércoles, 10 de Noviembre de 2010 a las 13:16 | #15

    Excelente script ;-)
    Gracias.
    Funciona de 10 !

    Saludos.

  16. Seigaru
    Viernes, 17 de Diciembre de 2010 a las 17:02 | #16

    Excelente codigo justo lo que buscaba.-

  17. LUIS JONATHAN
    Martes, 11 de Enero de 2011 a las 00:12 | #17

    LO MEJOR QUE ENCONTRADO EN SAN GOOGLE.. EHHHH!!!!
    BUEN CODIGO.. MUCGAS GRACIAS…

  18. Alvaro
    Lunes, 7 de Febrero de 2011 a las 18:57 | #18

    Grandisimo, muy bueno, me has evitado muchos quebraderos de cabeza! Un 10 para ti!

  19. pedroschme
    Martes, 19 de Julio de 2011 a las 04:00 | #19

    Muy bueno hermano me funcionó de maravilla, justo lo que buscaba.
    Muchas Gracias.

  20. CaHuMo
    Miércoles, 10 de Agosto de 2011 a las 20:50 | #20

    Gracias excelente código, me llegó como anillo al dedo.

  21. JoSe
    Jueves, 29 de Diciembre de 2011 a las 18:25 | #21

    Muchas gracias!!!!!

  1. Sin trackbacks aún.