Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Alarkon_88 en 11 Agosto 2018, 00:02 am



Título: [Resuelto] Choque entre 2 Scripts, al colocar los 2 uno no se ejecuta
Publicado por: Alarkon_88 en 11 Agosto 2018, 00:02 am
Saludos, el problema es el siguiente tengo mi web y queiro colocar un script para que al tratar de salir de ella le diga al cliente que si esta seguro de salir ya que los cambios no se guardaran

ok todo bien hasta ahi pero tambien tengo un chat online de tawk.to y al colocar los 2 scripts juntos el primero que es el de confirmacion para cerrar la pagina no hace su funcion pueden probar el codigo

Código
  1. <title>Prueba de abandono de página</title>
  2.  
  3. SCRIPT 1
  4. <script language="javascript" type="text/javascript">
  5.  
  6.    var bPreguntar = true;
  7.  
  8.    window.onbeforeunload = preguntarAntesDeSalir;
  9.  
  10.    function preguntarAntesDeSalir()
  11.    {
  12.      if (bPreguntar)
  13.        return "¿Seguro que quieres salir?";
  14.    }
  15.  
  16.  
  17. </head>
  18. <h1>Ejemplo de abandono de página</h1>
  19. <p>Por defecto preguntará hasta que pulses el botón de "No preguntar"</p>
  20. <input type="button" value="Preguntar" onclick="bPreguntar = true;" >
  21. &nbsp;&nbsp;
  22. <input type="button" value="No preguntar" onclick="bPreguntar = false;" >
  23. <br/><br/>
  24. <a href="http://www.jasoft.org">Ir a otra página</a>
  25.  
  26. SCRIPT 2
  27.  
  28. var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
  29. (function(){
  30. var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
  31. s1.async=true;
  32. s1.src='https://embed.tawk.to/5b558301df040c3e9e0bdbab/default';
  33. s1.charset='UTF-8';
  34. s1.setAttribute('crossorigin','*');
  35. s0.parentNode.insertBefore(s1,s0);
  36. })();
  37.  


Título: Re: Choque entre 2 Scripts, al colocar los 2 uno no se ejecuta
Publicado por: #!drvy en 12 Agosto 2018, 17:12 pm
Cuando usas esto:

Código
  1. window.onbeforeunload = preguntarAntesDeSalir;

Estas ree-escribriendo todo el evento. Tanto a ti como a cualquiera que lea estos temas, os recomiendo que os olvidéis de usar los eventos de esta forma y que deis de palos a los que lo siguen haciendo.



Empieza a usar event listeners en vez de re-escribir eventos enteros.
https://developer.mozilla.org/es/docs/Web/API/EventTarget/addEventListener

Código
  1. window.addEventListener('beforeunload', function(event) {
  2.  
  3.  var confirmationMessage = '¿Seguro que quieres salir?';
  4.  
  5.  event.returnValue = confirmationMessage;
  6.  return confirmationMessage;
  7. });

Saludos


Título: Re: Choque entre 2 Scripts, al colocar los 2 uno no se ejecuta
Publicado por: Alarkon_88 en 14 Agosto 2018, 06:19 am
Wow amigo excelente me funciono muy bien amigo pero ahora tengo otra duda, por ejemplo quiero que el script funcione al actualizar o cerrar la pagina solamente.

El problema surge al enviar un formulario, al presionar el botón de submit trata de redireccionar a otro archivo .html pero me sale el mensaje de alerta también como haría para que en esos casos no saliera la alerta, gracias.


Título: Re: Choque entre 2 Scripts, al colocar los 2 uno no se ejecuta
Publicado por: Alarkon_88 en 15 Agosto 2018, 08:11 am
Saludos, el problema fue solucionado por aca dejo el codigo para lo que tengan el mismo problema..

lo que hice fue colocar en el boton de submit onclick="mostrarPregunta(false)"

Código:
var bPreguntar = true;

function mostrarPregunta(pregunta) {
  bPreguntar = pregunta;
}

window.addEventListener('beforeunload', function(event) {
  if (bPreguntar) {
    var confirmationMessage = '¿Seguro que quieres salir?';

    event.returnValue = confirmationMessage;
    return confirmationMessage;
  }
});

y en el html

Código:
<input type="button" value="Preguntar" onclick="mostrarPregunta(true)">
<input type="button" value="No preguntar" onclick="mostrarPregunta(false)">