Comprobar que una variable existe con JQuery

Algunas veces al cargar Scripts externos la carga se demora y no disponemos de la variable que está definida en ellos hasta que acaba.

Una forma de solventar esto es comprobando cada cierto tiempo si esa variable existe, obviamente se nos puede dar el caso de que no exista nunca y provoque un bucle infinito, por eso conviene fijar un número de reintentos.

A continuación os dejo unos sencillos Script que será de utilidad para estos casos.

Comprobación con JQuery (Deferred)

/* 
 * varToCheck es la variable a comprobar que existe.
 * times es el número de reintentos por segundo
 */
var times = 10;
var varExist = $.Deferred();

function checkExist(varExist) {
   times--; // descuenta 
   if (typeof varToCheck != "undefined" || times == 0) {
     return varExist.resolve();
   } else {
      setTimeout(function() {checkExist(varExist)}, 1000)
   }

   return varExist.promise();
}

checkExist(varExist).then(function() {
    if (times == 0) {
        console.log('La variable no existe y finaliza por reintentos');
    }else{
        console.log('La variable existe');
    }
});

Comprobación de que existe un elemento con Javascript Vanilla

/* 
* Comprueba que si hay que ocultar el chat durante 10 segundos.
*/
var times = 20;
var element = document.getElementById("id-elemento");
function checkExist(element){
  times--; // descuenta 
  if (element != null || times == 0) {
    if (times != 0) {
      console.log ('el elemento existe');
    }else{
      console.log ('el elemento no existe');
  } else {
    window.setTimeout("checkExist();",1000);
   }
}

checkExist();

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *