Usar IFRAME y controles de recursos web en un formulario

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Los controles de recursos web IFRAME insertan contenido desde otra ubicación en las páginas usando un elemento HTML IFRAME.

Nota

Los diseños que elige para el formulario también se usan para el panel de lectura de Microsoft Dynamics 365 para Outlook y los formularios usados por Microsoft Dynamics 365 para tabletas. Los recursos web y IFRAMEs no se muestran usando del panel de lectura de Dynamics 365 para Outlook, sin embargo, se admiten en Dynamics 365 para tabletas. Si su IFRAME depende del acceso al objeto de Xrm.Page 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. No se admite 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.

En este tema

Seleccione si se restringe el scripting entre marcos

Pasar información contextual sobre el registro

Pasar datos de formulario

Cambiar la URL

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 zonas se encuentra en la pestaña Seguridad del cuadro de diálogo Opciones de Internet). De forma predeterminada, el scripting no está activado en la zona de 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:

  • Los complementos del explorador están deshabilitados.

  • 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 y Microsoft Edge

  • Google Chrome

  • Apple Safari

  • Mozilla Firefox

Para obtener más información sobre el atributo de espacio aislado, consulte:

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. El elemento XML del formulario correspondiente es <PassParameters> (FormXml).

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.

orglcid

Código de idioma de la organización

Identificador del código de idioma que representa el idioma base de la organización.

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 la tabla 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 Microsoft Dynamics 365.

Ejemplo

El siguiente ejemplo muestra la dirección URL sin parámetros.

http://myserver/mypage.aspx

El siguiente ejemplo muestra la dirección URL con parámetros.

http://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 redacte 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, Evento OnReadyStateComplete de IFRAME o Evento TabStateChange de pestañas y el método setSrc para anexar sus parámetros a la propiedad src de IFRAME o del recurso web.

Si está usando el parámetro de datos para pasar datos a un recurso web 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 de página web (HTML), utilice el método setSrc para manipular el parámetro querystring directamente.

Evite usar 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 el script de eventos de Onload finalice. Esto puede provocar que la propiedad src de IFRAME o el recurso web que ha cambiado sean sobrescritos por el valor predeterminado de IFRAME o de la propiedad 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 establecer el destino de IFRAME dinámicamente.

Nota

Cuando cambie la página de destino de 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 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);

Ver también

Escriba código para formularios de Microsoft Dynamics 365
Uso de JavaScript con Microsoft Dynamics 365
Referencia de scripting de formularios

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright