Utilizzare controlli IFRAME e di risorsa Web in un modulo
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
I controlli IFRAME e di risorsa Web incorporano contenuto nelle pagine da un'altra posizione utilizzando un elemento HTML IFRAME.
Nota
Le progettazioni che si scelgono per il modulo sono utilizzate per il riquadro di lettura di Microsoft Dynamics 365 per Outlook e i moduli utilizzati da Microsoft Dynamics 365 per tablet. Le risorse Web e gli IFRAMEs non vengono visualizzati utilizzando il riquadro di lettura di Dynamics 365 per Outlook, tuttavia, sono supportati in Dynamics 365 per tablet. Se l'oggetto IFRAME dipende dall'accesso all'oggetto Xrm.Page della pagina oppure da un qualsiasi gestore eventi del modulo, è necessario configurare IFRAME in modo che non sia visibile per impostazione predefinita.
È possibile utilizzare un IFRAME per visualizzare il contenuto da un altro sito Web in un modulo, ad esempio, in una pagina ASP.NET. La visualizzazione di un modulo dell'entità in un IFrame incorporato in un altro modulo dell'entità non è supportata.
È possibile utilizzare una delle risorse Web per visualizzare il contenuto di risorse Web in un modulo:
Nota
Silverlight è incluso solo per compatibilità con le versioni precedenti e non è consigliabile.Ulteriori informazioni:Risorse Web Silverlight (XAP)
Nelle sezioni seguenti vengono descritte le opzioni da utilizzare se si desidera che i comandi visualizzino più del contenuto statico.
In questo argomento
Selezionare se limitare lo scripting tra frame
Passare informazioni contestuali sul record
Passare i dati del modulo
Cambiare l'URL
Selezionare se limitare lo scripting tra frame
Utilizza l'opzione Limita lo scripting tra frame, laddove supportato se il contenuto visualizzato in un IFRAME non è completamente affidabile. Se questa opzione è selezionata, gli attributi dell'IFRAME elencati nella tabella seguente sono impostati.
Attributo |
Descrizione |
---|---|
security=”restricted” |
Questo attributo è supportato solo dalle versioni di Internet Explorer non precedenti alla versione 6. L'attributo di sicurezza si applica all'impostazione di sicurezza dell'utente Siti con restrizioni al file di origine di IFRAME. Le impostazioni dell'area sono disponibili nella scheda Sicurezza della finestra di dialogo Opzioni Internet. Per impostazione predefinita, la creazione di script non è abilitata nell'area Siti con restrizioni. Se si modificano le impostazioni di sicurezza dell'area, possono verificarsi vari risultati negativi, tra cui l'attivazione dell'esecuzione degli script. Per ulteriori informazioni, vedere attributo di sicurezza. |
sandbox=”” |
Per i browser che supportano questo attributo, il contenuto nell'IFRAME è essenzialmente limitato solo alla visualizzazione delle informazioni. Potrebbero essere applicate le restrizioni seguenti:
Questo attributo è definito da W3C ed è supportato dai seguenti browser:
Per ulteriori informazioni sull'attributo sandbox, vedi: |
Abilitazione della comunicazione IFRAME tra domini
Talvolta potresti voler abilitare le comunicazioni per un IFRAME che include contenuti da un dominio diverso.Window.postMessage è un metodo di browser che fornisce questa funzionalità per le versioni di Internet Explorer non precedenti a Internet Explorer 8. Anche Google Chrome, Mozilla Firefox e Apple Safari supportano questo metodo. Per ulteriori informazioni sull'utilizzo di postMessage, vedere i seguenti post di blog:
Passare informazioni contestuali sul record
È possibile fornire informazioni contestuali passando parametri all'URL definito nel controllo. La pagina che viene visualizzata nel frame deve essere in grado di elaborare i parametri passati. Tutti i parametri nella tabella seguente vengono passati se l'IFRAME o la risorsa Web è configurata tramite l'opzione Passa il codice del tipo di oggetto e l'ID univoco del record come parametri. L'elemento XML del modulo corrispondente è <PassParameters> (FormXml).
È possibile specificare se saranno passati tutti i parametri nella tabella seguente.
Parametro |
Nome |
Descrizione |
---|---|---|
typename |
Nome entità |
Nome dell'entità. |
type |
Codice tipo entità |
Numero intero che identifica in modo univoco l'entità in un'organizzazione specifica. |
id |
GUID oggetto |
GUID che rappresenta un record. |
orgname |
Nome organizzazione |
Nome univoco dell'organizzazione. |
userlcid |
Codice della lingua dell'utente |
Identificatore del codice della lingua utilizzato dall'utente corrente. |
orglcid |
Codice della lingua dell'organizzazione |
Identificativo del codice della lingua che rappresenta la lingua di base per l'organizzazione. |
I codici delle lingue sono ID delle impostazioni locali a quattro o cinque cifre. I valori degli ID delle impostazioni locali validi sono disponibili nella pagina che riporta il grafico degli ID delle impostazioni locali (LCID).
Nota
Si consiglia di utilizzare il nome di entità anziché il codice del tipo in quanto il codice del tipo per le entità personalizzate potrebbe differire tra le organizzazioni Microsoft Dynamics 365.
Esempio
Nell'esempio seguente viene mostrato l'URL senza parametri.
http://myserver/mypage.aspx
Nell'esempio seguente viene mostrato l'URL senza parametri.
http://myserver/mypage.aspx?id=%7bB2232821-A775-DF11-8DD1-00155DBA3809%7d&orglcid=1033&orgname=adventureworkscycle&type=1&typename=account&userlcid=1033
Leggere i parametri passati
I parametri passati vengono in genere letti nella pagina .aspx di destinazione utilizzando la proprietà HttpRequest.QueryString. In una pagina HTML è possibile accedere ai parametri utilizzando la proprietà window.location.search in JavaScript. Per ulteriori informazioni, vedere Proprietà di HttpRequest.QueryString e proprietà di ricerca.
Passare i dati del modulo
Utilizzare il metodo getValue sugli attributi contenenti i dati che si desidera passare all'altro sito Web e creare una stringa con gli argomenti della stringa di query che l'altra pagina potrà utilizzare. Utilizzare quindi un oggetto Evento OnChange del campo, Evento OnReadyStateComplete IFRAME o Evento TabStateChange della scheda e il metodo setSrc per aggiungere i propri parametri alla proprietà src dell'IFRAME o della risorsa Web.
Se si sta utilizzando il parametro dati per passare i dati a una risorsa Web Silverlight, è possibile utilizzare i metodi getData e setData per modificare il valore passato tramite il parametro dati. Per le risorse Web di pagine Web (HTML), utilizzare il metodo setSrc per modificare direttamente il parametro querystring.
Evita di usare Evento OnLoad. Gli IFRAMES e le risorse Web vengono caricati in modalità asincrona e il frame potrebbe non aver finito il caricamento prima che lo script dell'evento Onload sia completato. Ciò può causare la sovrascrittura della proprietà src dell'IFRAME o della risorsa Web, che è stata modificata, con il valore predefinito della proprietà URL dell'IFRAME o della risorsa Web.
Cambiare l'URL
È possibile che si desideri modificare la destinazione dell'IFRAME in base a considerazioni come i dati nel modulo o se l'utente lavora offline. È possibile impostare la destinazione dell'IFRAME in modo dinamico.
Nota
Quando si modifica la pagina di destinazione per l'IFRAME, i parametri non vengono passati al nuovo URL automaticamente. È necessario aggiungere i parametri della stringa di query all'URL prima di utilizzare il metodo setSrc.
Esempio
Nell'esempio seguente viene mostrato come impostare la proprietà src per l'IFRAME e tutti i parametri utilizzando l'evento onChange di un campo con un set di opzioni.
//Get the value of an option set attribute
var value = Xrm.Page.data.entity.attributes.get("new_pagechooser").getValue();
var newTarget = "";
//Set the target based on the value of the option set
switch (value) {
case 100000001:
newTarget = "http://myServer/test/pageOne.aspx";
break;
default:
newTarget = "http://myServer/test/pageTwo.aspx";
break;
}
//Get the default URL for the IFRAME, which includes the
// query string parameters
var IFrame = Xrm.Page.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);
Vedere anche
Creare il codice per moduli di Microsoft Dynamics 365
Utilizzare JavaScript con Microsoft Dynamics 365
Riferimento rapido dello scripting dei moduli
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright