2010-06-18 5 views
17

en utilisant Javascript Je dois trouver la meilleure façon d'ajouter un élément iFrame est:Javascript: Ajouter un élément iFrame après page chargée

  1. complètement caché de l'utilisateur.
  2. Créé après le chargement complet de la page. Cela doit être totalement discret pour l'utilisateur et ne pas affecter le chargement des images et autres scripts, etc.

Répondre

47

Vous pouvez ajouter un cache iframe comme ceci:

var iframe = document.createElement('iframe'); 
iframe.style.display = "none"; 
iframe.src = /* your URL here */; 
document.body.appendChild(iframe); 

Si vous devez faire de la charge de page, vous pouvez simplement mettre le code correspondant dans une balise de script à la fin de votre document, ou connectez-le via l'événement windowload (window.onload = yourFunction;), bien que l'événement windowload se produise assez tard dans le processus de chargement de la page. Et bien sûr, comme beaucoup de choses impliquant JavaScript sur les navigateurs, vous pouvez trouver votre vie est un peu plus facile si vous utilisez une bibliothèque comme Prototype, jQuery, Closure, ou any of several others, car ils peuvent lisser les différences de navigateur. (Cela dit, le code ci-dessus fonctionnera sur tous les navigateurs que je connais.) Les bibliothèques offrent généralement une façon de faire les choses dès que la page est chargée, mais plus tôt que windowload arrive généralement. jQuery fournit la fonction ready; Le prototype fournit l'événement dom:loaded; etc.

Par exemple, si vous mettez cela à la fin de votre balise body, il va créer l'iframe après tout autre a chargé (y compris toutes les images, windowload ne se déclenche pas jusqu'à ce que toutes les images ont chargé) :

<script type='text/javascript'> 
window.onload = function() { 
    var iframe = document.createElement('iframe'); 
    iframe.style.display = "none"; 
    iframe.src = /* your URL here */; 
    document.body.appendChild(iframe); 
}; 
</script> 
+0

Je dois le faire "après" le chargement de la page ... et je ne veux pas que le rendu du contenu iframe affecte de quelque façon que ce soit le chargement du site web. – EddyR

+0

@EddyR: C'est pourquoi vous mettez la balise de script à la toute fin du document. Mais si vous voulez être sûr de rester complètement à l'écart du chargement de l'image, faites-le dans 'window.onload'. Cet événement se produit après que * tout * ait été chargé, y compris toutes les images. J'ai mis à jour avec un exemple. –

+0

ok ... gotcha. merci – EddyR

Questions connexes