Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Bianca

les bons tuyaux !

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 2010 Genève : Retrouvez-moi pour une session sur la Haute disponibilité et le ScaleOut avec SQL Server par SQL Server vu par Christian Robert le il y a 16 heures et 9 minutes

- [MIX10] Keynote deuxième journée – Internet Explorer 9, Html5, Visual Studio 2010, OData par Atteint de JavaScriptite Aiguë [Cyril Durand] le 03-17-2010, 19:40

- Certifications beta .NET 4 par Kévin Gosse le 03-17-2010, 19:33

- [Mix 2010] – Microsoft Translator Technology Preview V2 par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 18:53

- Lancement en Preview de Cyclone lors des TechDays 2010! par Blog de Frédéric Queudret le 03-17-2010, 16:30

- [WP7] Je ne veux pas d’un nouvel iPhone par Le blog de FremyCompany le 03-17-2010, 13:11

- [WF4] Pourquoi utiliser le ContentPresenter dans l’ActivityDesigner? par Blog de Jérémy Jeanson le 03-17-2010, 07:54

- [Mix 2010] – Telechargez Internet Explorer 9 en Preview ! par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 00:58

- [MIX 2010] – Keynote Day 2 online : Windows Internet Explorer 9, jQuery, OData et Dallas CTP2 ! par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 00:18

- [Mix 2010] – Retour d’expérience développement Seesmic sur Windows Phone 7 par RedoBlog - The .NET Gentleman !!! le 03-16-2010, 23:44