Bonjour,

Je développe un site web pour une agence d'assurance.
Sur certaines pages une iframe doit être intégrer pour proposer une estimation assurance. Cette iframe inclus un formulaire dynamique dont je n'ai aucun contrôle dessus.

J'ai tenté une technique de ce genre, mais je n'ai pas accès au body de l'iframe... :
function autoIframe(frameId){
	try{
		frame = document.getElementById(frameId);
		innerDoc = (frame.contentDocument) ? frame.contentDocument : frame.contentWindow.document;
		
		if (innerDoc == null){
			// Google Chrome
			frame.height = document.all[frameId].clientHeight + document.all[frameId].offsetHeight + document.all[frameId].offsetTop;
		} else{
			objToResize = (frame.style) ? frame.style : frame;
			objToResize.height = innerDoc.body.scrollHeight + 18;
		}
	}	
	catch(err){
		alert('Err: ' + err.message);
		window.status = err.message;
	}
}

Et j'appel cette fonction sur un onLoad de l'iframe.

Comment puis je faire ?

PS : Inutile de me donner ce genre de lien, j'en ai déjà fait un paquet Smiley ravi
merci jb-gfx;

Y a t il un moyen que le dev du contenu de l'iframe pourrait mettre en place pour communiquer la hauteur de son body ?
J'ai pensé à un hack mais j'ai pas testé :

Tu crées un fichier php sur ton serveur, dedans tu ne fais qu'une seule chose : inclure le contenu de ton url distante contenant le formulaire en utilisant cURL.

Dans ta balise iframe tu utilises cette page php comme source. Comme ça le contenu de ton iframe est sur le même domaine et tu peux accéder à la hauteur de son body.
Modifié par jb_gfx (03 Jun 2013 - 16:17)
Je vois ton idée !

Mais le contenu de l'iframe se redimensionne sans rechargement de page...
Cela ne poserait il pas problème ?
Ya moyen de contourner ça je pense. Puisque c'est ta page locale qui va changer de taille dont tu pourras toujours mettre à jour la taille de l'iframe depuis la page appelante.

A condition que le formulaire ne fasse qu'afficher/masquer des éléments déjà chargé et non du chargement AJAX.