Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Comment supprimer l’espacement blanc autour d’une liste affichée dans une iFrame dans un formulaire Dynamics CRM

Problématique

Lorsqu’on affiche une liste d’éléments associés dans une iFrame au sein d’un formulaire Dynamics CRM (cf. article précédent explicitant le procédé pour y parvenir) , il reste un espace blanc de chaque côté de celle-ci :

image

Comment supprimer ces espaces de couleur blanche ?

Proposition de solution

Si vous observez l’élément HTML dans la page, à l’aide par exemple de l’Internet Explorer Toolbar (ou des outils de développement de IE8), vous constaterez que ces espaces sont dû :

  • d’abord au padding de l’élément HTML correspondant qui n’est malheureusement pas à 0,

image

  • mais aussi, sur la droite, à la zone prévue pour une éventuelle barre de défilement (ce qui explique d’ailleurs que l’espace blanc est plus important à droite qu’à gauche puisqu’il cumule le problème du padding et de la scrollbar).

image

Conclusion, pour s’en débarrasser il suffit de supprimer les deux :-)

Le code

Voici le code à rajouter dans l’évènement onLoad du formulaire :

ATTENTION : pensez à remplacer le nom de l’iFrame (IFRAME_Clubs) par le nom de votre iFrame à vous !

crmForm.all.IFRAME_Clubs.attachEvent('onreadystatechange',func);

function func(event) {
  //Récupération de l'élément HTML (iframe) sur lequel porte l'évènement
  var target = event.target || event.srcElement;
  //Vérification du statut de chargement du contenu de l'iframe
  if(target.readyState=='complete') {
    //Récupération du body de l'iframe
    iframeBody=target.contentWindow.document.body;
    //Suppression du padding
    iframeBody.childNodes[0].rows[0].cells[0].style.padding = 0; 
    //Suppression de l'emplacement de la scrollbar verticale
    iframeBody.scroll = "no";
  }
}

Pourquoi attacher dynamiquement une fonction en réponse à l’évènement onreadystatechange sur l’iFrame ? 
Tout simplement parce que vous risquez d’accéder au contenu de l’iFrame avant même que celle-ci soit chargée ! L’évènement onreadystatechange se déclenche sur un élément justement lorsque le statut de celui-ci change. On l’utilise donc pour valider que le statut de l’iframe est à la valeur complete, indiquant la fin du chargement de son contenu!

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 15 décembre 2009 18:13 par bianca
Classé sous :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 21 heures et 41 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39