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.
Vous pouvez utiliser un IFRAME pour afficher le contenu d’un autre site web dans un formulaire, par exemple, dans une page ASP.NET.
Il est recommandé d’utiliser des composants de Power Apps component framework si vous envisagez d’utiliser une ressource web pour afficher du contenu avec lequel les utilisateurs interagiront.
L’affichage d’un formulaire dans un IFrame imbriqué dans un autre formulaire 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 :
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 paramètres de l’IFRAME répertoriés dans le tableau suivant sont définis.
Paramètre | Description |
---|---|
security="restricted" |
Ce paramètre n’est plus pris en charge. |
sandbox="" |
Pour les navigateurs qui prennent en charge ce paramètre, 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. Ce paramètre est défini par W3C et pris en charge par les navigateurs suivants : - Microsoft Edge - Google Chrome - Apple Safari - Mozilla Firefox Pour plus d’informations sur le paramètre bac à sable, consultez : - Comment sauvegarder votre site avec le bac à sable HTML5 - Bac à sable |
Activation de la communication d’un IFrame sur plusieurs domaines
Vous pouvez parfois souhaiter 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 Google Chrome, Mozilla Firefox et Apple Safari. 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 table | Nom de la table. |
type |
Code de type de table | Entier qui identifie de manière unique la table 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 de table au lieu du code de type, car le code de type de table des tables personnalisées peut être différent entre les organisations Microsoft Dataverse.
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 colonnes 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 Colonne OnChange, IFRAME OnReadyStateCompleteou Tab TabStateChange et la méthode setSrc 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’une colonne 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);