Jquery ('#iframeid').load() est exécutée avant l'Iframe de CONTENU (texte, images) sont chargés
Je suis en train d'accéder aux données d'un Iframe de l'Iframe. À force de ma fonction javascript attendre je utiliser jqueries .la fonction de charge. Mais encore mon code javascript est exécuté "parfois" avant le contenu de l'iframe est entièrement chargé. Parfois, je veux dire que le comportement est différent pour les différents ordinateurs. Sur les ordinateurs plus lents, il attend la plupart du temps pour les jeûneurs les ordinateurs, le code est presque toujours exécutés. Donc je pense qu'Internet explorer 8 déclenche l'événement onload de début. Est-il une fonction jquery attendre jusqu'à ce que tous les éléments d'une iframe sont chargés?
C'est mon code:
function parsePeopleLink(){
try{
//This is where I check if the wanted I frame already exists
if(document.getElementById('isolatedWorkArea') != null) {
if(window.frames[2] != null) {
if(window.frames[2].name == 'isolatedWorkArea') {
//This is where I want the following code only to be executed when the Iframe's content is fully loaded, otherwise I get an access denied error when trying to change Userlinks
$('#isolatedWorkArea').load(function() {
for( var i = 0; i < window.frames.length; i++){
for(var j = 0; j< window.frames[i].document.frames.length; j++){
IframeDocument = window.frames[i].document.frames[j].document;
changeUserLink(findPeopleIDfix(findPeopleID(IframeDocument)),findUserLinks(IframeDocument),8, IframeDocument);
}
}
});
}
else {
throw e; //I know that all the nested else statements are ugly, I just inserted them for testing purposes
}
}
else {
throw e;
}
}
else {
throw e;
}
}
catch(e) {
//alert(e.description);
for(var k = 0; k < window.frames.length; k++)
{
IframeDocument = window.frames[k].document;
changeUserLink(findPeopleIDfix(findPeopleID(IframeDocument)),findUserLinks(IframeDocument),9, IframeDocument);
iframeindex++;
}
}
}
Tous les Iframes ont: même port, protocoll /et src.
L'aide est très apprécié
Vous devez vous connecter pour publier un commentaire.
Javascript ne peut pas accéder à du contenu externe pour surveiller quand il est complètement chargé. Si vous avez accès au contenu de l'iframe, vous pouvez ajouter un appel à la fenêtre parent de la fonction pour la déclencher.
De La Page Parent:
Encadré Page:
J'ai utilisé quelque chose comme ça dans un de mes projets. J'ai essayé de télécharger un fichier et d'afficher un message après le téléchargement terminé. Ce genre de chose n'a pas fonctionné dans mon expérience:
Charge événement se déclenche immédiatement après l'iframe est écrit en langage HTML n'est pas quand iframe charge l'intégralité de son contenu. Mais ce code a fonctionné:
Ce code attendais pour mon fichier à télécharger, puis tiré à la charge de l'événement. Je pense que cela pourrait fonctionner pour vous aussi.
Je voulais cacher l'attente spinner div lorsque le contenu d'une image est complètement chargé sur IE,
j'ai essayé littéralement chaque solution mentionnée dans Stackoverflow.Com mais avec rien n'a fonctionné comme je le voulais.
Puis j'ai eu une idée, que lorsque le contenu d'une image est complètement chargé, l' $(Window ) charge de l'événement peut être déclenché.
Et c'est exactement ce qui s'est passé.
Alors, j'ai écrit ce petit script, et a travaillé comme de la magie:
Espère que cette aide.
Comment/où en êtes-vous de déclenchement de la charge de l'iframe? Si vous cochez ces solutions d'un modèle de:
fonctionne.
Similaires signalés solutions:
jQuery .prêt dans un insérés dynamiquement iframe
Javascript de rappel lors de l'IFRAME est fini de charger?
Edit:
Ressemble Nick Spiers a la bonne réponse, ou au moins une partie de votre problème. Les problèmes d'accès sur le contenu de l'iframe.
load
méthodes, basées sur l'argument de la surcharge. Je vais ajouter une modification à ce sujet.J'ai utilisé ce code pour s'assurer de l'iFrame (identifié par son ID) a été chargé avant l'exécution de ma fonction: