La idea es comprobar si una determinada página está disponible cada segundo. Cuando la página esté disponible, quiero mostrar un Noty-modal donde el usuario puede elegir recargar la página actual o cerrar el modal. Yo uso Noty.js v3.1.4.
Código JS
<script> var n = new Noty({ text: "Website under construction", type: 'alert', layout: 'center', theme: 'bootstrap-v4', modal: 'true', buttons: [ Noty.button("Yes", "btn btn-primary", function () { location.reload(); }), Noty.button("No", "btn btn-primary ml-3", function () { checkAvailability = true; n.close(); })], animation: { open: 'animated fadeIn faster', close: 'animated fadeOut faster' } }); var checkAvailability = true; var timeout = 1000; (function(){ if (checkAvailability) { $.ajax({ url: "https://example.com", type : 'HEAD', success : function(){ //website is available checkAvailability = false; timeout = 30000; // set timeout to 30 seconds, no need to check every second anymore n.show(); }, error: function (){ //website is not available checkAvailability = true; timeout = 1000; } }); } setTimeout(arguments.callee, timeout); })(); </script> La solicitud de AJAX funciona y en un momento determinado aparece Noty Modal. Ahora, cuando hago clic en 'No', el modal no se cierra. Veo que n.closed cambia de false a true , pero el modal no desaparece. No hay registro en la consola. ¿Alguna idea de lo que está mal?