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

182
Vistas
¿Cómo ejecutar un fragmento de JavaScript solo si existe un iframe en la página actual?

Quiero hacer una modificación en los iframes incrustados de YouTube para mejorar la puntuación de Lighthouse, pero no puedo hacer que funcione la instrucción if:

 if (document.getElementsByTagName('iframe')){ function init() { var vidDefer = document.getElementsByTagName('iframe'); for (var i=0; i<vidDefer.length; i++) { if(vidDefer[i].getAttribute('data-src')) { vidDefer[i].setAttribute('src',vidDefer[i].getAttribute('data-src')); } } } window.onload = init; function parseJSAtOnload() { var element = document.createElement("script"); element.src = "https://www.youtube-nocookie.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.js"; document.body.appendChild(element); } if (window.addEventListener) window.addEventListener("load", parseJSAtOnload, false); else if (window.attachEvent) window.attachEvent("onload", parseJSAtOnload); else window.onload = parseJSAtOnload; }

Solo quiero ejecutar este fragmento si existe un elemento iframe en la página actual y no siempre. De esta manera podría incrustar el código en cada página de mi sitio web, sin importar el contenido. Con el código anterior, todavía se activa siempre. ¿Cómo hacer que funcione solo en páginas con un iframe?

Veo este error en la consola del desarrollador en todas las páginas, incluso en las que no tienen elementos iframe:

OBTENGA https://www.youtube-nocookie.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.js net::ERR_ABORTED 404

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

0

document.getElementsByTagName() devuelve una colección vacía.
Las HTMLCollections vacías son objetos, que se reducen a la primitiva true . (Lo sé, JavaScript es una locura...)

Entonces, if( document.getElementsByTagName( 'no-such-element' ) ) siempre se evaluará como true .

Usted quiere:

 if( document.getElementsByTagName( 'iframe' ).length > 0 ) { //...
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