Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

258
Vistas
Función de llamada sin ejecutarla realmente

Así que tengo una pregunta tan extraña y no sé si esto es posible, pero lo intentaré de todos modos.

Hemos implementado OneTrust, que es un proveedor de consentimiento de cookies de terceros y funciona muy bien y todo, pero tenemos un pequeño inconveniente que estamos tratando de resolver.

Así que dentro de la siguiente función:

 toggleVideo: function (videoWrapper, src, cover, type, element) { var videoElement = video.buildVideo(src, type); // We build out video-player element videoWrapper.html(videoElement); // We define our variables let onetrust = window.OneTrust; let onetrust_obj = window.ONETRUST_MODULE; let target = videoWrapper.html(videoElement).children('iframe'); console.log(onetrust.Close()); // Now we wait and observe for a src attribute and then show the video. onetrust_obj.src_observer(target, function() { video.toggle_show(videoWrapper, cover); }); },

Tenemos un elemento <iframe> que cuando se hace clic en Reproducir, esperará a que se ejecute el consentimiento. El problema es que necesita "actualizar" OneTrust para que pueda cambiar el atributo data-src a src (Todo esto se maneja usando OneTrust JS , así que no tengo control).

  1. Cuando agrego el console.log(onetrust.Close()); , funciona tal como se esperaba y reanuda la reproducción del video cuando se da el consentimiento, la desventaja es que genera un error en la consola . Si lo elimino, los videos no se reproducirán después de dar el consentimiento.
  2. No quiero ejecutar realmente el método onetrust.Close() ya que cerrará el banner.
  3. OneTrust no tiene una forma adecuada de "Actualizar" su inicialización, los técnicos me dijeron que este era un caso único, en el que ni siquiera saben cómo manejarlo.

Mis preguntas :

  1. ¿Hay alguna manera de que pueda llamar correctamente a onetrust.Close() (parece ser la única llamada que realmente activa el video para reproducirlo después) sin ejecutarlo realmente?
  2. Si no, ¿hay alguna manera de que pueda registrarlo de manera similar, pero no registrarlo en la consola?

¡Gracias a todos!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Extraño, puede ser un problema de condición de carrera, por lo que hacer que su código se ejecute en la siguiente iteración de procedimiento puede resolver el problema; esto se puede hacer agregando un setTimeout sin valor de temporizador.

 setTimeout(() => { onetrust_obj.src_observer(target, function() { video.toggle_show(videoWrapper, cover); }); });

Alternativamente, puede valer la pena profundizar en el método onetrust.Close() para ver si hay utilidades públicas que puedan ayudar a 'actualizar' el contexto en el que está trabajando.

Otra idea sería ver qué sucede después si vuelve a ejecutar el bloque de código onetrust_obj.src_observer .

EDITAR: me gustaría dejar en claro que solo estoy tratando de ayudar a resolver la depuración de esto, sin ver un entorno de trabajo es difícil ofrecer sugerencias 😄

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda