Utiliser les contrôles IFRAME et de ressource web dans un formulaire

Les contrôles IFRAME et de ressources Web permettent d’intégrer du contenu dans les pages à partir d’un autre emplacement, en utilisant un élément HTML IFRAME.

Note

Les conceptions choisies pour le formulaire sont également utilisées pour le volet de lecture Dynamics 365 for Outlook et les formulaires utilisés par Dynamics 365 pour tablettes. Les ressources web et IFRAME ne sont pas affichées dans le volet de lecture Dynamics 365 for Outlook toutefois, elles sont prises en charge dans Dynamics 365 pour tablettes. Si votre IFRAME dépend de l’accès à l’objet Xrm de la page ou des gestionnaires d’événements de formulaire, vous devez configurer l’IFRAME de sorte qu’il ne soit pas visible par défaut.

Le contenu IFRAME qui se trouve derrière une limite d’authentification n’est pas pris en charge via les ressources web ou Power Apps component framework. Certains IFRAME intégrés peuvent fonctionner dans un navigateur client si l’utilisateur se connecte directement au service externe, mais cela n’est pas pris en charge dans les applications mobiles ou pour tablettes. Le scénario particulier d’intégration d’un formulaire d’entité dans un IFRAME imbriqué dans un autre formulaire d’entité n’est pas pris en charge.

Vous pouvez utiliser un IFRAME pour afficher le contenu d’un autre site web dans un formulaire, par exemple, dans une page ASP.NET. L’affichage d’un formulaire d’entité dans un IFrame imbriqué dans un autre formulaire d’entité n’est pas pris en charge.

Vous pouvez utiliser l’une des ressources web suivantes pour afficher le contenu des ressources web dans un formulaire :

Note

Silverlight est inclus pour la compatibilité descendante uniquement et n’est pas recommandée. Plus d’informations : Ressources web de Silverlight (XAP)

Les sections suivantes décrivent les options disponibles si vous souhaitez que ces contrôles affichent d’autres éléments en plus du contenu statique.

Indiquer s’il faut restreindre les scripts sur plusieurs cadres

Utilisez l’option Restreindre les scripts sur plusieurs cadres en cas de prise en charge lorsque vous ne faites pas totalement confiance au contenu affiché dans un IFRAME. Lorsque cette option est sélectionnée, les attributs de l’IFRAME répertoriés dans le tableau suivant sont définis.

Attribut Description
security="restricted" Cet attribut est pris en charge uniquement par les versions d'Internet Explorer qui ne sont pas antérieures à la version 6. L’attribut de sécurité applique le paramètre de sécurité Sites sensibles au fichier source de l’IFRAME. (Les paramètres de zone se trouvent sous l’onglet Sécurité de la boîte de dialogue Options Internet). Par défaut, l’écriture de script n’est pas activée dans la zone Sites sensibles. En modifiant les paramètres de sécurité de la zone, plusieurs résultats négatifs peuvent se produire, notamment l’autorisation des scripts à s’exécuter. Pour plus d’informations, consultez l’attribut security.
sandbox="" Pour les navigateurs qui prennent en charge cet attribut, le contenu de l’IFRAME est essentiellement limité à l’affichage des informations. Les restrictions suivantes peuvent être appliquées :

- Les plug-ins du navigateur sont désactivés.
- Les formulaires et les scripts sont désactivés.
- Les liens vers d’autres contextes de navigation sont désactivés.
- Le contenu est considéré comme issu d’un autre domaine même si le domaine est identique.

Cet attribut est défini par W3C et est pris en charge par les navigateurs suivants :

- Internet Explorer 10, Internet Explorer 11 et Microsoft Edge
- Google Chrome
- Apple Safari
- Mozilla Firefox

Pour plus d’informations sur l’attribut sandbox, consultez :

- Comment sauvegarder votre site avec le bac à sable HTML5
- Attribut sandbox WC3
- Sandbox

Activation de la communication d’un IFrame sur plusieurs domaines

Vous souhaitez parfois activer la communication d’un IFRAME dont le contenu est issu d’un autre domaine. Window.postMessage est une méthode de navigateur qui fournit cette fonctionnalité pour les versions d’Internet Explorer qui ne sont pas antérieures à Internet Explorer 8. Google Chrome, Mozilla Firefox et Apple Safari la prennent également en charge. Pour plus d’informations sur l’utilisation de postMessage, consultez les billets de blog suivants :

Transmettre des informations contextuelles sur l’enregistrement

Vous pouvez fournir des informations contextuelles en transmettant des paramètres à l’URL définie dans le contrôle. La page affichée dans le cadre doit pouvoir traiter les paramètres qui lui sont transmis. Tous les paramètres contenus dans le tableau ci-dessous sont transmis si l’IFRAME ou la ressource web est configuré à l’aide de l’option Transm. code type d’objet d’enregistr. et id. unique comme paramètres.

Vous pouvez spécifier si tous les paramètres contenus dans le tableau suivant sont transmis.

Paramètre Nom Description
typename Nom de l’entité Nom de l’entité.
type Code de type d’entité Entier qui identifie de manière unique l’entité dans une organisation spécifique.
id GUID de l’objet GUID qui représente un enregistrement.
orgname Nom de l’organisation Nom unique de l’organisation.
userlcid Code de langue de l’utilisateur Identificateur du code de langue utilisé par l’utilisateur actuel.

Les codes de langue sont des ID de paramètres régionaux à quatre ou cinq chiffres. Les valeurs d’ID de paramètres régionaux valides sont disponibles sur la page Tableau des ID de paramètres régionaux (LCID).

Note

Nous vous suggérons d’utiliser le nom d’entité au lieu du code de type, car le code de type d’entité des entités personnalisées peut être différent entre les organisations Dynamics 365 Customer Engagement (on-premises).

Exemple

L’exemple suivant montre l’URL sans paramètres.

https://myserver/mypage.aspx  

L’exemple suivant montre l’URL avec les paramètres.

https://myserver/mypage.aspx?id=%7bB2232821-A775-DF11-8DD1-00155DBA3809%7d&orglcid=1033&orgname=adventureworkscycle&type=1&typename=account&userlcid=1033  

Lire les paramètres transmis

Les paramètres transmis sont généralement lus dans la page .aspx cible à l’aide de la propriété HttpRequest.QueryString. Dans la page HTML, les paramètres sont accessibles à l’aide de la propriété window.location.search dans JavaScript. Pour plus d'informations, consultez Propriété HttpRequest.QueryString et Propriété search.

Transmettre les données de formulaire

Utilisez la méthode getValue sur les attributs contenant les données à transmettre à l’autre site web, puis composez une chaîne des arguments de chaîne de requête que l’autre page peut utiliser. Utilisez ensuite un Événement OnChange de champ, Événement OnReadyStateComplete IFRAMEou un Événement TabStateChange d’onglet et la méthodesetSrc pour ajouter vos paramètres à la fin de la propriété src de l’IFRAME ou de la ressource web.

Si vous utilisez le paramètre de données pour transmettre des données à une ressource Web Silverlight, vous pouvez utiliser les méthodes getData et setData pour manipuler la valeur transmise via le paramètre de données. Pour les ressources web de page web (HTML), utilisez la méthode setSrc pour manipuler directement le paramètre querystring.

Évitez d’utiliser l’événement OnLoad. Les IFRAMES et les ressources web sont chargés de manière asynchrone et il est possible que le chargement du cadre ne soit pas terminé avant la fin du script d’événement Onload. Cela peut entraîner le remplacement de la propriété src de l’IFRAME ou de la ressource web modifié par la valeur par défaut de la propriété URL de l’IFRAME ou de la ressource web.

Modifier l’URL

Vous pouvez modifier la cible de l’IFRAME en fonction des données du formulaire ou si l’utilisateur travaille hors connexion. Vous pouvez définir la cible de l’IFRAME de manière dynamique.

Note

Lorsque vous modifiez la page cible de l’IFRAME, les paramètres ne sont pas transmis automatiquement à la nouvelle URL. Vous devez ajouter les paramètres de chaîne de requête à l’URL avant d’utiliser la méthode setSrc.

Exemple

L’exemple suivant montre comment définir la propriété src pour l’IFRAME et les paramètres en utilisant l’événement onChange d’un champ de groupe d’options.

//Get the value of an option set attribute
var formContext = executionContext.getFormContext();
var value = formContext.getAttribute("new_pagechooser").getValue();  
var newTarget = "";  
//Set the target based on the value of the option set  
switch (value) {  
    case 100000001:  
        newTarget = https://myServer/test/pageOne.aspx;  
        break;  
    default:  
        newTarget = https://myServer/test/pageTwo.aspx;  
        break;  
}  
//Get the default URL for the IFRAME, which includes the   
// query string parameters  
var IFrame = formContext.ui.controls.get("IFRAME_test");  
var Url = IFrame.getSrc();  
// Capture the parameters  
var params = Url.substr(Url.indexOf("?"));  
//Append the parameters to the new page URL  
newTarget = newTarget + params;  
// Use the setSrc method so that the IFRAME uses the  
// new page with the existing parameters  
IFrame.setSrc(newTarget);

Différences de disposition entre le client Web hérité et Unified Interface

Un contrôle de ressource Web configuré pour utiliser un certain nombre de lignes aura des hauteurs différentes dans une application Unified Interface par rapport à une application client web héritée. Cela vient du fait qu’il existe une différence de hauteur de ligne entre Unified Interface et l’ancien client Web. Si un formulaire est nécessaire à la fois dans le client Web hérité et Unified Interface, vous pouvez utiliser différents formulaires dans l’application Unified Interface et l’application client Web héritée avec le contrôle configuré pour utiliser le nombre approprié de lignes dans chaque formulaire.

Voir aussi

Création de scripts client dans Customer Engagement à l’aide de Javascript
Utiliser JavaScript avec Customer Engagement