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 tabletas de Dynamics 365. 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.
Puede usar un IFRAME para mostrar los contenidos de otro sitio web en un formulario, por ejemplo, en una página ASP.NET.
Si se está planteando utilizar un recurso web para mostrar contenido con el que los usuarios interactuarán, le recomendamos que utilice componentes de Power Apps component framework.
Mostrar un formulario en un IFrame incrustado en otro formulario no se admite.
Puede usar uno de los siguientes recursos web para mostrar los contenidos de recursos web en un formulario:
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 parámetros establecidos que se enumeran en la tabla siguiente.
Parámetro | Descripción |
---|---|
security="restricted" |
Este parámetro ya no se admite. |
sandbox="" |
Para exploradores que admiten este parámetro, 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 parámetro se define mediante W3C y es compatible con los siguientes exploradores: - Microsoft Edge - Google Chrome - Apple Safari - Mozilla Firefox Para obtener más información sobre el parámetro 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 de navegador que proporciona esta capacidad para Google Chrome, Mozilla Firefox y Safari de Apple. 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 tabla | Nombre de la tabla. |
type |
Código e tipo de tabla | El entero que identifica de forma única la tabla 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 identificadores 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 tabla en lugar del código de tipo porque el código de tipo de tabla para tablas personalizadas puede variar entre las organizaciones de Microsoft Dataverse.
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 las columnas 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 Columna OnChange event, un IFRAME OnReadyStateComplete event o un Tab TabStateChange event 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 iFrame 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 una columna de opción.
//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);
Vea también
Scripting del cliente con JavaScript
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).