Verwenden von IFRAME- und Webressourcen-Steuerelementen in einem Formular
Durch IFRAME- und Webressourcensteuerelemente wird der eingebettete Inhalt von einem anderen Ort aus auf den Seiten mithilfe eines HTML-IFRAME-Elements gesteuert.
Notiz
Die Entwürfe, die Sie für das Formular wählen, werden auch für den Dynamics 365 for Outlook-Lesebereich und die von Dynamics 365 für Tablets verwendeten Formulare verwendet. Webressourcen und IFRAMEs werden nicht mithilfe des Dynamics 365 for Outlook-Lesebereichs angezeigt. Sie werden jedoch in Dynamics 365 für Tablets unterstützt. Wenn der IFRAME vom Zugriff auf das Xrm
-Objekt der Seite oder von Formularereignishandlern abhängt, sollten Sie den IFRAME so konfigurieren, dass er standardmäßig nicht sichtbar ist.
IFRAME-Inhalte, die sich hinter einer Authentifizierungsgrenze befinden, werden durch Webressourcen oder das Power Apps component framework nicht unterstützt. Einige eingebettete IFRAMEs funktionieren möglicherweise in einem Browser-Client, wenn sich der Benutzer direkt beim externen Dienst anmeldet. Dies wird jedoch in Mobil- oder Tablet-Anwendungen nicht unterstützt. Das spezifische Szenario zum Einbetten eines Entitätsformulars in einen iFrame, der in ein anderes Entitätsformular eingebettet ist, wird nicht unterstützt.
Sie können einen IFRAME verwenden, um den Inhalt einer anderen Website in einem Formular anzuzeigen, beispielsweise in einer ASP.NET-Seite. Anzeigen eines Entitätsformulars mit einem IFrame, der eingebettet in einem anderen Entitätsformular ist, wird nicht unterstützt.
Sie können eine der folgenden Webressourcen verwenden, um den Inhalt von Webressourcen in einem Formular anzuzeigen:
Notiz
Silverlight ist nur aus Gründen der Abwärtskompatibilität enthalten und wird nicht empfohlen. Weitere Informationen:Silverlight (XAP) Web Ressourcen
Die folgende Abschnitte beschreiben Ihre Optionen, wenn diese Steuerelemente mehr als statische Inhalte anzeigen sollen.
Auswählen, ob frameübergreifendes Skripting eingeschränkt werden soll
Verwenden Sie die Option Frameübergreifendes Skripting einschränken, wenn unterstützt, wenn Sie dem Inhalt, der in einem IFRAME angezeigt wird, nicht vollständig vertrauen. Wenn diese Option ausgewählt ist, besitzt der IFRAME den Attributsatz, der in der folgenden Tabelle aufgeführt ist.
Attribut | Beschreibung |
---|---|
security="restricted" |
Dieses Attribut wird nur von Versionen von Internet Explorer ab Version 6 unterstützt. Das Sicherheitsattribut wendet die Benutzersicherheitseinstellung "Eingeschränkte Sites" auf die Quelldatei des IFRAME an. (Zoneneinstellungen sind auf der Registerkarte Sicherheit des Dialogfelds Internetoptionen zu finden.) Standardmäßig ist die Skipterstellung in der Zone für eingeschränkte Sites nicht aktiviert. Durch Ändern der Sicherheitseinstellungen der Zone können unterschiedliche negative Ergebnisse auftreten, einschließlich das Zulassen der Ausführung von Skripts. Weitere Informationen finden Sie unter Sicherheitsattribute. |
sandbox="" |
Für Browser, die dieses Attribut unterstützen, ist der Inhalt im IFRAME im Wesentlichen darauf beschränkt, nur Informationen anzuzeigen. Die folgenden Einschränkungen können angewendet werden: - Browser-Plug-Ins sind deaktiviert. - Formulare und Skripte sind deaktiviert. - Links zu anderen Browsing-Kontexten sind deaktiviert. - Der Inhalt wird als von einer anderen Domäne stammend behandelt, auch wenn die Domäne dieselbe ist. Dieses Attribut wird durch W3C definiert und wird von den folgenden Browsern unterstützt: - Internet Explorer 10, Internet Explorer 11 und Microsoft Edge - Google Chrome - Apple Safari - Mozilla Firefox Weitere Informationen zum Sandkastenattribut finden Sie unter: - Wie Sie Ihre Website mit der HTML5 Sandbox absichern - Sandbox |
Aktivieren der IFRAME-Kommunikation über Domänengrenzen hinweg
Manchmal möchten Sie die Kommunikation für einen IFRAME aktivieren, der Inhalt auf einer anderen Domäne enthält.
Window.postMessage
ist eine Browsermethode, die diese Funktionalität für Versionen von Internet Explorer nicht früher als Internet Explorer 8 bietet. Google Chrome, Mozilla Firefox und Apple Safari unterstützen sie auch. Weitere Informationen zu postMessage
finden Sie in den folgenden Blogbeiträgen:
Übergeben kontextbezogener Informationen zum Datensatz
Sie können kontextbezogene Informationen durch Übergeben von Parametern an die im Steuerelement definierte URL bereitstellen. Die Seite, die im Frame angezeigt wird, muss in der Lage zu sein, übergebene Parameter zu verarbeiten. Alle Parameter in der folgenden Tabelle werden übergeben, wenn der IFRAME oder die Webressource mit der Option Datensatzobjekt-Typcode u. eindeut. Bezeichner als Parameter übergeben konfiguriert ist.
Sie können angeben, ob alle Parameter in der folgenden Tabelle übergeben werden.
Parameter | Name | Beschreibung |
---|---|---|
typename |
Entitätsname | Der Name der Entität. |
type |
Entitätstypcode | Die ganze Zahl, die eindeutig die Entität in einer bestimmten Organisation identifiziert. |
id |
Objekt-GUID | Eine GUID, die einen Datensatz darstellt. |
orgname |
Organisationsname | Der eindeutige Name der Organisation. |
userlcid |
Benutzersprachcode | Die Sprachcode-ID, die vom aktuellen Benutzer verwendet wird. |
Sprachcodes sind vierstellige oder fünfstellige Gebietsschema-IDs. Gültige Gebietsschema-ID-Werte finden Sie unter Gebietsschema-ID-Diagramm (LCID).
Notiz
Es ist empfehlenswert, den Entitätsnamen statt des Typcodes zu verwenden, da der Entitätstypcode für benutzerdefinierte Entitäten möglicherweise je nach Dynamics 365 Customer Engagement (on-premises)-Organisation verschieden ist.
Beispiel
Im folgenden Beispiel wird die URL ohne Parameter gezeigt:
https://myserver/mypage.aspx
Im folgenden Beispiel wird die URL mit Parameter gezeigt:
https://myserver/mypage.aspx?id=%7bB2232821-A775-DF11-8DD1-00155DBA3809%7d&orglcid=1033&orgname=adventureworkscycle&type=1&typename=account&userlcid=1033
Lesen von übergebenen Parametern
Übergebene Parameter werden in der Regel auf der ASPX-Zielseite mithilfe der HttpRequest.QueryString-Eigenschaft gelesen. Auf einer HTML-Seite kann der Zugriff auf die Parameter mit der window.location.search-Eigenschaft in JavaScript erfolgen. Weitere Informationen finden Sie unter HttpRequest.QueryString-Eigenschaft und search-Eigenschaft.
Übergeben von Formulardaten
Verwenden Sie die getValue-Methode für die Attribute, die Daten enthalten, die Sie an die andere Website übergeben möchten, und erstellen Sie eine Zeichenfolge aus den Abfragezeichenfolgenargumenten, die die andere Seite verwenden kann. Verwenden Sie dann Field OnChange Event, IFRAME OnReadyStateComplete Event oder Tab TabStateChange Event und die setSrc-Methode, um Ihre Parameter an die Eigenschaft src
des IFRAMEs oder der Webressource anzuüfgen.
Wenn Sie den Datenparameter verwenden, um Daten an eine Silverlight-Webressource zu übergeben, können Sie die getData- und setData-Methoden verwenden, um den Wert zu ändern, der über den Datenparameter übergeben wird. Für Webseiten-Webressourcen (HTML) verwenden Sie die setSrc-Methode, um den querystring
-Parameter direkt zu bearbeiten.
Vermeiden Sie die Anwendung des OnLoad-Ereignisses. IFRAMES und Webressourcen werden asynchron geladen und der Frame ist möglicherweise noch nicht vollständig geladen, bevor das Onload
-Ereignisskript abgeschlossen wird. Dies kann dazu führen, dass die Eigenschaft src
des IFRAMEs oder der Webressource, die Sie geändert haben, durch den Standardwert des IFRAMES oder der Webressourceneigenschaft URL überschrieben wird.
Ändern der URL
Sie möchten möglicherweise das Ziel von IFRAME basierend auf Überlegungen zu den Daten im Formular oder ob der Benutzer offline arbeitet ändern. Sie können das Ziel von IFRAME dynamisch festlegen.
Notiz
Wenn Sie die Zielseite für den IFRAME ändern, werden Parameter nicht automatisch an den neuen URL-Parameter übergeben. Sie müssen Abfragezeichenfolgenparameter an die URL anfügen, bevor Sie die Methode setSrc
verwenden.
Beispiel
Im folgenden Beispiel wird gezeigt, wie die Eigenschaft src
für den IFRAME und alle potenziellen Parameter mithilfe des Ereignisses onChange
eines Optionssatzfelds festgelegt wird.
//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);
Layoutunterschiede zwischen dem alten Webclient und Einheitliche Oberfläche
Eine Webressourcensteuerung, die für die Verwendung einer bestimmten Anzahl von Zeilen konfiguriert ist, hat in einer Einheitliche Oberfläche-Anwendung andere Höhen als in einer Legacy-Web-Client-Anwendung. Dies liegt daran, dass es einen Unterschied in der Zeilenhöhe zwischen Einheitliche Oberfläche und dem alten Webclient gibt. Wenn ein Formular sowohl im Legacy-Webclient als auch in Einheitliche Oberfläche benötigt wird, können Sie verschiedene Formulare in der Einheitliche Oberfläche-App und der Legacy-Webclient-App verwenden, wobei das Steuerelement so konfiguriert ist, dass die entsprechende Anzahl von Zeilen in jedem Formular verwendet wird.
Siehe auch
Clientskripting im Customer Engagement mit JavaScript
Verwendung von JavaScript mit Customer Engagement