Événement Load iFrame pas tiré dans IE
Pourquoi le load
événement à ne pas tiré dans IE pour les iFrames?
Veuillez jeter un oeil à cet exemple.
Fonctionnent parfaitement comme prévu dans FF et Chrome, mais IE ne.
Vous devez vous connecter pour publier un commentaire.
Je pense que pour les iframes dans Internet Explorer, vous ne pouvez pas définir ce gestionnaire d'événement (onload) par programme, vous devez le spécifier dans votre balisage.
Quelque chose comme:
Sinon IE va tout simplement ignorer la fonction.
onload
fonctionne comme prévuonload="alert('moo');"
ne pas alerter.IE peut-être déjà chargé le contenu (et a déclenché l'événement) avant d'ajouter le gestionnaire. J'ai constaté que lorsque je statiquement spécifié l'iframe src attr, et a ajouté $(x).la charge des gestionnaires d'événements via jquery, firefox 3.6.28) a déclenché ma gestionnaires mais IE (8.0.6001.18702) n'a pas.
J'ai fini le réglage de mon programme de test de sorte que l'ensemble de la iframe src via javascript après l'ajout de l' $(x).gestionnaire de chargement. My $(x).gestionnaire de chargement a été appelé aux mêmes endroits dans IE et Firefox (mais remarque un gestionnaire ajoutés via iframe attribut onload se sont comportés différemment entre IE et FF) . Voici ce que j'ai:
... et voilà que l'Firefox "journal":
i1/eb_mce_iframe_content.html chargé
i1:
Fred le renard.
/eb_mce_iframe_content.html chargé
x:
Fred le renard.
Attribuant le gestionnaire directement à
onload
fonctionne dans Chrome, FF et IE (testé avec IE 8).En utilisant le code JavaScript avec jQuery à partir de ici fonctionne si vous modifiez le
if ($.browser.safari || $.browser.opera) {
ligneif ($.browser.safari || $.browser.opera || $.browser.msie) {
. Vous avez donc la suivante:J'utilise
readystatechange
cas pour IE.Ajouter le préfixe "iframe" en face de votre id:
Alternativly essayez d'utiliser "prêt" au lieu de "charger":
Cela devrait fonctionner.
iframe
dans le sélecteur va faire quelque chose pour elle. Quelle est l'hypothèse — que ça va être encore plus sélectionné? Comment cela équivaut à l'ready
événement... Le affolants.Seis réponse est la bonne, et peut être amélioré pour utilisation non-global/fonctions anonymes.
À ma grande surprise, cela fonctionne.
Remarque: iframe.onload = func() ne fonctionne PAS, même après que hack. Vous DOIT utilisation attachEvent. Allez comprendre.
Remarque: bien entendu, ce code verbatim ne fonctionnera pas conforme à la norme de la Samu.