Usar um IFRAME e controles de recursos da Web em um formulário

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

O IFRAME e os controles de recursos da Web inserem conteúdo de outro local nas páginas usando um elemento HTML IFRAME.

Observação

O IFRAME e os elementos de recursos da Web não são exibidos no Microsoft Dynamics CRM para Tablets. Com Atualização do Microsoft Dynamics CRM Online 2015, é possível começar o quanto antes o desenvolvimento e o teste de controles de toque habilitado para CRM para tablets, habilitando o recurso de visualização para exibir IFrames e os recursos da web em CRM para tablets.Para obter mais informações:Criar recursos da web e conteúdo do IFRAME para uso no CRM para cliente de tablets.

Observação

Os designs selecionados para o formulário também são usados para o painel de leitura e formulários do Microsoft Dynamics CRM para Outlook usados pelo Microsoft Dynamics CRM para Tablets. Os recursos da Web e o IFRAMEs não são exibidos com o uso do painel de leitura do Dynamics CRM para Outlook ou do CRM para tablets. Se o IFRAME depender do acesso ao objeto Xrm.Page da página ou de quaisquer manipuladores de eventos de formulário, é necessário configurar o IFRAME, para que ele não seja visível por padrão.

É possível usar um IFRAME para exibir o conteúdo de outro site em um formulário, por exemplo, em uma página do ASP.NET. A exibição de um formulário de entidade dentro de um IFrame inserido em outro formulário de entidade não tem suporte.

Você pode usar um dos seguintes recursos da Web para exibir o conteúdo dos recursos da Web em um formulário:

As seções a seguir descrevem as opções, caso você deseje que esses controles mostrem mais do que o conteúdo estático.

Neste tópico

Selecione se deve haver restrições para o uso de scripts de cross-frame

Transmissão de informações contextuais sobre o registro

Transmissão de dados do formulário

Alteração da URL

Selecione se deve haver restrições para o uso de scripts de cross-frame

Use a opção Restringir o uso de scripts de cross-frame, onde houver suporte quando você não confiar totalmente no conteúdo exibido em um IFRAME. Quando esta opção é selecionada, o IFRAME terá os atributos definidos que são listados na tabela a seguir.

Atributo

Descrição

security=”restricted”

Este atributo é suportado por versões do Internet Explorer não anteriores à versão 6. O atributo de segurança aplica configuração de segurança do usuário a sites restritos ao arquivo fonte do IFRAME. (As configurações de zona são encontradas na guia Segurança da caixa de diálogo Opções da Internet) Por padrão, o uso de scripts não está habilitado na zona de Sites Restritos. Ao alterar as configurações de segurança da zona, vários resultados negativos podem ocorrer, incluindo a permissão de execução de scripts. Para obter mais informações, consulte atributo de segurança.

sandbox=””

Para navegadores com suporte para este atributo, o conteúdo do IFRAME é basicamente limitado somente à exibição das informações. As seguintes limitações podem ser aplicadas:

  • Os plug-ins do navegador são desabilitados.

  • Os formulários e scripts são desabilitados.

  • Links para outros contextos de navegação são desabilitados.

  • O conteúdo é processado como um domínio diferente, mesmo se o domínio for o mesmo.

Este atributo é definido pelo W3C e tem suporte pelos seguintes navegadores:

  • Internet Explorer 10

  • Google Chrome

  • Apple Safari

  • Mozilla Firefox

Para obter mais informações sobre o atributo de área restrita, consulte:

Como habilitar a comunicação do IFrame pelos domínios

Há momentos em que você deseja habilitar comunicação para um IFRAME que contenha conteúdo em um domínio diferente. O Window.postMessage é um método de navegação que fornece esta possibilidade para versões do Internet Explorer não anteriores a Internet Explorer 8. O Google Chrome, Mozilla Firefox e Apple Safari também oferecem suporte a esse método. Para obter mais informações sobre como usar postMessage, consulte as seguintes postagens de blogs:

Transmissão de informações contextuais sobre o registro

É possível fornecer informações contextuais pela transferência de parâmetros à URL definida no controle. A página exibida no quadro deve ser capaz de processar os parâmetros transmitidos a ela. Todos os parâmetros da tabela a seguir são transmitidos se o IFRAME ou o recurso da Web estiver configurado com a opção Transmitir código do tipo de objeto do registro e identificador exclusivo como parâmetros. O elemento de formulário do XML correspondente é <PassParameters> (FormXml).

É possível especificar se todos os parâmetros da tabela a seguir serão transmitidos.

Parâmetro

Nome

Descrição

typename

Nome da Entidade

O nome da entidade.

type

Código de tipo de entidade

O inteiro que identifica de forma exclusiva a entidade em uma organização específica.

id

GUID do objeto

Um GUID que representa um registro.

orgname

Nome da Organização

O nome exclusivo da organização.

userlcid

Código do idioma do usuário

O identificador do código de idioma que está sendo usado pelo usuário atual.

orglcid

Código do idioma da organização

O identificador do código de idioma que representa o idioma base da organização.

Os códigos de idioma são IDs de localidade de quatro ou cinco dígitos. Os valores de ID de localidade válidos podem ser encontrados em Gráfico de LCID (ID de localidade).

Observação

Sugerimos o uso do nome da entidade em vez do código de tipo, pois o código do tipo de entidade das entidades personalizadas pode ser diferente entre organizações do Microsoft Dynamics 365.

Exemplo

O exemplo a seguir mostra a URL sem os parâmetros.

http://myserver/mypage.aspx

O exemplo a seguir mostra a URL com os parâmetros.

http://myserver/mypage.aspx?id=%7bB2232821-A775-DF11-8DD1-00155DBA3809%7d&orglcid=1033&orgname=adventureworkscycle&type=1&typename=account&userlcid=1033

Leitura dos parâmetros transmitidos

Os parâmetros transmitidos são geralmente lidos na página .aspx de destino usando a propriedade HttpRequest.QueryString. Em uma página HTML, os parâmetros podem ser acessados usando a propriedade window.location.search no JavaScript. Para obter mais informações, consulte Propriedade de HttpRequest.QueryString e Propriedade search.

Transmissão de dados do formulário

Use o método getValue nos atributos que contêm os dados que você deseja transmitir para outro site e crie uma cadeia de caracteres dos argumentos da cadeia de caracteres da consulta que a outra página poderá usar. Em seguida, use Evento OnChange de campo, Evento IFRAME OnReadyStateComplete ou Evento TabStateChange da guia e o método setSrc para acrescentar os parâmetros à propriedade src do IFRAME ou do recurso da Web.

Se estiver usando o parâmetro de dados para transmitir dados para um recurso da Web do Silverlight, é possível usar os métodos getData e setData para manipular o valor transmitido pelo parâmetro de dados. Para os recursos da Web na página da Web (HTML), use o método setSrc para manipular diretamente o parâmetro querystring.

Evite usar o Evento OnLoad. O IFRAMES e os recursos da Web são carregados de maneira assíncrona e o quadro pode não ter carregado antes da conclusão do script de evento Onload. Isso pode fazer com que a propriedade src do IFRAME ou do recurso da Web alterado seja substituída pelo valor padrão da propriedade URL do IFRAME ou do recurso da Web.

Alteração da URL

Talvez você deseje alterar o destino do IFRAME com base em considerações dos dados no formulário ou na possibilidade de o usuário estar trabalhando offline. É possível definir o destino do IFRAME dinamicamente.

Observação

Ao alterar a página de destino do IFRAME, os parâmetros não são transmitidos automaticamente para a nova URL. É necessário acrescentar os parâmetros de cadeia de caracteres da consulta à URL antes de usar o método setSrc.

Exemplo

O exemplo a seguir mostra como definir a propriedade src do IFRAME e todos os parâmetros usando o evento onChange de um campo de conjunto de opções.

//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);

Confira Também

Criar códigos para os formulários do Microsoft Dynamics CRM 2015
Usar o Javascript com o Microsoft Dynamics CRM 2015
Referência rápida do script de formulário

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais