Maison  >  Article  >  interface Web  >  Comment implémenter un rappel lorsqu'un IFRAME termine le chargement avec Javascript ?

Comment implémenter un rappel lorsqu'un IFRAME termine le chargement avec Javascript ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 11:19:29474parcourir

How to Implement a Callback When an IFRAME Finishes Loading with Javascript?

Chargement d'un Iframe avec un rappel Javascript

Pour exécuter un rappel lorsqu'un IFRAME termine le chargement, suivez ces étapes :

Créez l'IFRAME et le gestionnaire de charge

Créez l'IFRAME par programme :

<code class="javascript">var iFrameObj = document.createElement('IFRAME');
iFrameObj.src = url;</code>

Ajoutez un gestionnaire de charge à l'IFRAME :

<code class="javascript">$(iFrameObj).load(function() {
  // handle iframe load
});</code>

Accédez au contenu IFRAME et détruisez-le

Dans le gestionnaire de chargement, accédez au contenu de l'IFRAME et détruisez-le :

<code class="javascript">function callback(iFrameObj) {
  // obtain iframe data
  var iframeData = $('body', iFrameObj.contentWindow.document).html();
  // destroy the iframe
  document.body.removeChild(iFrameObj);
}</code>

Considérations supplémentaires

  • Assurez-vous que si vous utilisez des délais d'attente pour la suppression, définissez un délai approprié pour permettre à l'IFRAME de se charger.
  • Évitez les requêtes intersites car leur contenu n'est pas accessible.
  • Utilisez jQuery pour la compatibilité entre navigateurs et les événements de chargement explicites.

Exemple

<code class="javascript">$('#myUniqueID').load(function() {
  if (typeof callback == 'function') {
    callback($('body', this.contentWindow.document).html());
  }
  setTimeout(function () {$('#frameId').remove();}, 50);
});</code>

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