Maison >interface Web >js tutoriel >Pourquoi jQuery .ready se déclenche-t-il prématurément dans les iFrames insérés dynamiquement ?

Pourquoi jQuery .ready se déclenche-t-il prématurément dans les iFrames insérés dynamiquement ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 06:52:02996parcourir

Why Does jQuery .ready Fire Prematurely in Dynamically Inserted iFrames?

iFrames insérés dynamiquement et événement jQuery .ready

Lorsque vous utilisez le plugin Thickbox de jQuery pour afficher dynamiquement une iframe contenant la bibliothèque JavaScript Galleria, vous peut rencontrer un problème où l'événement $(document).ready se déclenche prématurément dans l'iframe, entraînant une application incorrecte du code Galleria.

Cause première

Le $( document).ready s'appuie sur l'état prêt du document parent pour déterminer l'état de préparation de l'iframe. Cependant, dans les iFrames insérés dynamiquement, l'état prêt du parent peut indiquer que l'iFrame est prêt même si le contenu de l'iFrame lui-même n'est pas encore chargé.

Solution alternative

A une approche plus fiable consiste à se lier au propre événement de chargement de l'iframe. Cela garantit que votre code ne s'exécutera que lorsque le contenu de l'iframe aura fini de se charger.

Extrait de code

function callIframe(url, callback) {
    $(document.body).append('<IFRAME>

En utilisant l'événement de chargement, vous pouvez contrôler le timing de l'exécution de votre code plus précisément et évitez une exécution prématurée dans des iFrames insérés dynamiquement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn