Usar un IFRAME y controles de recursos web en un formulario
Publicado: noviembre de 2016
Se aplica a: Dynamics CRM 2015
Los controles de recursos web IFRAME insertan contenido desde otra ubicación en las páginas usando un elemento HTML IFRAME.
Nota
Los elementos de recursos web e IFRAME no aparecen en Microsoft Dynamics CRM para tabletas. Con Actualización de Microsoft Dynamics CRM Online 2015 puede iniciar el desarrollo y la prueba iniciales de controles táctiles para CRM para tableta habilitando la característica de vista previa para mostrar IFrames y recursos web en CRM para tabletas.Más información:Crear recursos web y contenido de IFRAME para uso con el cliente de CRM para tabletas.
Nota
Los diseños que elige para el formulario también se usan para el panel de lectura de Microsoft Dynamics CRM para Outlook y los formularios usados por Microsoft Dynamics CRM para tabletas. Los recursos web y IFRAMEs no se muestran utilizando el panel de lectura de Dynamics CRM para Outlook o CRM 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:
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:
Este atributo se define mediante W3C y es compatible con los siguientes exploradores:
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 CRM 2015
Uso de JavaScript con Microsoft Dynamics CRM 2015
Referencia de scripting de formularios
© 2017 Microsoft. Todos los derechos reservados. Copyright