J'ai créé une iframe de manière dynamique et j'ai ajouté un attribut src code> à celui-ci. Ensuite, j'ai annexé cet iframe au corps de la page. Sachez que je souhaite joindre un événement code> sur charnade code> sur iframe pour lire le contenu de l'iframe. Quelqu'un peut-il suggérer comment puis-je faire cela?
4 Réponses :
Je doute que vous puissiez joindre un événement surload à un iframe. Cela ne fonctionnera pas sur tous les navigateurs. Vous pouvez surtout vérifier si l'iframe a été chargé par: ou utilisez AJAX pour charger le contenu de votre conteneur. Avec Ajax, vous pouvez définir un événement complet-complet. P> p>
Essayez Onload = "Retour Function_Name ();"
Et si vous voulez prendre les choses entre vos mains et compliquer un peu, vous pouvez faire une minuterie périodique qui se souvient du document.body.innerhtml d'un iframe et tire votre propre événement à chaque fois que cela change. Si vous n'en avez pas besoin qu'une fois, vous pouvez détruire la minuterie après avoir tiré un événement.
Ajouter iframe.Onload Lister Pour vérifier le chargement
Certains navigateurs ont l'événement surload pour une iframe, vous devriez d'abord essayer de l'attacher avant de définir l'attribut SRC de l'iframe.
J'éviterais de l'utiliser complètement depuis dans certains navigateurs, cela pourrait ne pas tirer dans certaines conditions (par exemple, la cible était en cache dans IE). p>
Vous pouvez utiliser une minuterie pour vérifier si le préreyState de Contentwindow's Contentwindow est complet P>
var inter = window.setInterval(function() { if (frame.contentWindow.document.readyState === "complete") { window.clearInterval(inter); // grab the content of the iframe here } }, 100);
Cela ne fonctionne pas pour moi car l'iframe est dans une autre origine, je reçois SecurityError: bloqué une image avec origine " localhost " de accéder à une image d'origine croisée.
Vous êtes correct, cela ne fonctionnera en effet que avec les mêmes cadres d'origine. Il pourrait être plus sûr d'assumer la fenêtre.LoLoLoad fonctionnalité est meilleur aujourd'hui, en fonction des navigateurs que vous envisagez de soutenir.
Je viens d'essayer cela et ça a fonctionné en chrome: w3school dit contentwindow code> est pris en charge dans tous les grands navigateurs. P> P>
Je crois (w3school) eux, des milliers d'autres n'entraîneraient
Vous pouvez ajouter un charge code > événement
auditeur à l'iframe's ContentWindow Code>
, qui est juste comme n'importe quel autre .
voici un exemple : P>