Usar IFRAME y controles de recursos web en un formulario
IFRAME y los controles de recursos web insertan contenido desde otra ubicación en las páginas mediante un elemento de IFRAME HTML.
Nota
Los diseños que elige para el formulario también se usan para el panel de lectura de Dynamics 365 for Outlook y los formularios usados por Dynamics 365 for tablets. Los recursos web e IFRAMES no se muestran usando del panel de lectura de Dynamics 365 for Outlook, sin embargo, se admiten en Dynamics 365 para tabletas. Si su IFRAME depende del acceso al objeto de Xrm
de la página o a cualquier controlador de eventos de formulario, deberá configurar IFRAME para que no sea visible de forma predeterminada.
El contenido de IFRAMEing que está detrás de un límite de autenticación no es compatible a través de recursos web o Power Apps component framework. Algunos IFRAME incrustados pueden funcionar en un cliente de navegador si el usuario inicia sesión directamente en el servicio externo, pero esto no es compatible con aplicaciones móviles o para tabletas. No se admite el escenario específico de incrustar un formulario de entidad en un IFRAME incrustado en otro formulario de entidad.
Puede usar un IFRAME para mostrar los contenidos de otro sitio web en un formulario, por ejemplo, en una página ASP.NET. No se puede mostrar un formulario de entidad en un iFrame incrustado en otro formulario de entidad.
Puede usar uno de los siguientes recursos web para mostrar los contenidos de recursos web en un formulario:
Nota
Silverlight está incluido para compatibilidad con versiones anteriores solo y no es recomendable. Más información: Recursos web de Silverlight (XAP)
En las siguientes secciones se describen sus opciones si desea que estos controles muestren más que contenido estático.
Seleccione si se restringe el scripting entre marcos
Use la opción Restringir el scripting entre marcos cuando se admita cuando no confíe totalmente en el contenido que aparece en un IFRAME. Cuando se seleccione esta opción, el IFRAME tendrá los atributos establecidos que se enumeran en la tabla siguiente.
Atributo | Descripción |
---|---|
security="restricted" |
Este atributo solo es compatible con las versiones DE Internet Explorer no anteriores a la versión 6. El atributo de seguridad aplica el ajuste de seguridad del usuario Sitios restringidos al archivo de origen del IFRAME. (La configuración de la zona se encuentra en la pestaña Seguridad del cuadro de diálogo Opciones de Internet .) De forma predeterminada, el scripting no está habilitado en la zona Sitios restringidos. Mediante el cambio de la configuración de seguridad de la zona, se pueden producir varios resultados negativos, incluido el permitir la ejecución de scripts. Para obtener más información, consulte atributo de seguridad. |
sandbox="" |
Para exploradores que admiten este atributo, el contenido del IFRAME está esencialmente limitado a solo mostrar información. Se pueden aplicar las siguientes restricciones: - Están inhabilitados los complementos del explorador. - Los formularios y scripts están deshabilitados. - Los vínculos a otros contextos de navegación están deshabilitados. - El contenido se trata como procedente de un dominio diferente aunque el dominio sea el mismo. Este atributo se define mediante W3C y es compatible con los siguientes exploradores: - Internet Explorer 10, Internet Explorer 11, and Microsoft Edge - Google Chrome - Apple Safari - Mozilla Firefox Para obtener más información sobre el atributo de espacio aislado, consulte: - Cómo proteger su sitio con espacios aislados HTML5 - Espacio aislado |
Activación de la comunicación de IFrame entre dominios
Hay momentos en los que conviene habilitar la comunicación para un IFRAME que contiene contenido de un dominio diferente.
Window.postMessage
es un método del explorador que proporciona esta capacidad para las versiones Internet Explorer no anteriores a Internet Explorer 8. Google Chrome, Mozilla Firefox, y Apple Safari también lo admiten. Para obtener más información acerca del uso de postMessage
, vea las entradas de blog siguientes.
Pasar información contextual sobre el registro
Puede proporcionar información contextual pasando parámetros a la URL definida en el control. La página mostrada en el marco debe poder procesar los parámetros que se le pasan. Todos los parámetros de la siguiente tabla se pasan si IFRAME o el recurso web se configura mediante la utilización de la opción Pasar código de tipo de objeto de registro e identificador único como parámetros.
Puede especificar si se van a pasar todos los parámetros de la siguiente tabla.
Parámetro | Nombre | Descripción |
---|---|---|
typename |
Nombre de entidad | El nombre de la entidad. |
type |
Código de tipo de entidad | El entero que identifica de forma única la entidad en una organización específica. |
id |
GUID de objeto | GUID que representa un registro. |
orgname |
Nombre de la organización | Nombre único de la organización. |
userlcid |
Código de idioma de usuario | Identificador del código de idioma que usa el usuario actual. |
Los códigos de idioma son identificadores de configuración regional de cuatro o cinco dígitos. Los valores de id. de configuración regional válidos pueden encontrarse en el gráfico de identificadores de configuración regional (LCID).
Nota
Se sugiere usar el nombre de la entidad en lugar del código de tipo porque el código de tipo de entidad para entidades personalizadas puede variar entre las organizaciones de Dynamics 365 Customer Engagement (on-premises).
Ejemplo
El siguiente ejemplo muestra la dirección URL sin parámetros.
https://myserver/mypage.aspx
El siguiente ejemplo muestra la dirección URL con parámetros.
https://myserver/mypage.aspx?id=%7bB2232821-A775-DF11-8DD1-00155DBA3809%7d&orglcid=1033&orgname=adventureworkscycle&type=1&typename=account&userlcid=1033
Leer parámetros pasados
Los parámetros pasados se leen normalmente en la página .aspx de destino mediante la propiedad HttpRequest.QueryString. En una página HTML, se puede acceder a los parámetros utilizando la propiedad window.location.search en JavaScript. Para obtener más información, consulte HttpRequest.QueryString Property y la propiedad de búsqueda.
Pasar datos de formulario
Use el método getValue en los atributos que contienen los datos que desea que pasen al otro sitio web y forme una cadena de los argumentos de cadena de consulta que pueda utilizar la otra página. A continuación, utilice un evento OnChange de campo, un evento OnReadyStateComplete de IFRAME o un evento TabStateChange de pestaña y el método setSrc para agregar los parámetros a la propiedad src
del recurso IFRAME o web.
Si está usando el parámetro de datos para pasar datos a un recurso web de Silverlight , puede utilizar los métodos getData y setData para manipular el valor pasado a través del parámetro de datos. Para recursos web (HTML) de página web, use el método setSrc para manipular directamente el parámetro querystring
.
Evite utilizar el evento OnLoad. Los IFRAMES y los recursos web se cargan de manera asincrónica y puede que el marco no haya acabado de cargarse antes de que finalice el script de eventos de Onload
. Esto puede provocar que la propiedad src
del recurso IFRAME o web que ha cambiado se sobrescriba con el valor predeterminado de la propiedad IFRAME o URL del recurso web.
Cambiar la URL
Es posible que desee cambiar el destino de IFRAME en función de consideraciones como los datos del formulario o de si el usuario está trabajando sin conexión. Puede definir dinámicamente el destino del IFRAME.
Nota
Cuando cambie la página de destino del IFRAME, los parámetros no se pasarán a la nueva URL automáticamente. Debe anexar los parámetros de cadena de consulta a la URL antes de usar el método setSrc
.
Ejemplo
El siguiente ejemplo muestra cómo establecer la propiedad src
para el IFRAME y cualquier parámetro usando el evento de onChange
de un campo de conjunto de opciones.
//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);
Diferencias de diseño entre el cliente web heredado y la Interfaz unificada
Un control de recursos web configurado para usar una cierta cantidad de filas tendrá diferentes alturas en una aplicación Interfaz unificada en comparación con una aplicación de cliente web heredada. Esto se debe a que existe una diferencia en la altura de una fila entre Interfaz unificada y el cliente web heredado. Si se necesita un formulario tanto en el cliente web heredado como en Interfaz unificada, puede usar diferentes formularios en la aplicación Interfaz unificada y en la aplicación del cliente web heredado con el control configurado para usar la cantidad adecuada de filas en cada formulario.
Vea también
Ejemplo de script en Customer Engagement mediante JavaScript
Utilizar JavaScript con Customer Engagement