miércoles, 5 de junio de 2013

Saliendo de la caja llamada IFRAME en las Apps para SharePoint 2013

El nuevo modelo Apps esta diseñado para que estas se ejecute en un dominio asilado diferente del domino donde se ejecutan los sitios de SharePoint, por lo que para desplegar un App Part en un sitio de SharePoint es necesario utilizar un IFRAME,el problema de esto es que hay riesgos de seguridad y además un perímetro físico que es establecido por las dimensiones del App Part, por lo que todo lo que muestre realmente se esta ejecutando en el dominio aislado.

Esto hace complicado el ejecutar operaciones fuera del Iframe, cosas tan sencillas como colocar un enlace o link que redireccione a otra página lo hará dentro del Iframe a menos que hagamos uso del objeto window de javascript de la siguiente forma window.location.href = url.

Pero esto no funciona en el App Part ya que es bloqueado, que podemos hacer?

Utilizar la propiedad Top del objeto Window de la siguiente forma:

top.window.location.href = url

Para ver un ejemplo del segmento de código quedaría así:

<a  onclick=”top.window.location.href='url'” target='_blank'>Read More</a>

Eso es todo, Apps4Fun!,

Juan Manuel Herrera Ocheita

ACTUALIZACION 14/JUL/2013

En Windows 7 y IE 8 no funciona top.window.location.href, por lo que es mejor utilizar parent.location.href:

      parent.location.href = url;

1 comentario:

Ricardo Amán dijo...

hOLA
ESTOY REALIZANDO POR PRIMERA VEZ UN SITIO PUBLICO EN SHAREPOINT 2013. HE TRATADO DE INSERTAR UN IFRAME QUE ES DE UN SITIO EXTERNO A LOS DE MICROSOFT Y DE OFIICE 365. NO ME PERMITE USAR OTROS SITIOS. YA CONFIGURE LA SEGURIDAD DE CAMPO HTML Y LIBERE ESTA OPERACIO. PERO AUN NO PUEDO HACER QUE FUNCIONE ESTA ACCION. TAMBIEN YA INTENTE CON EL VISUALIZADOR DE PAGINAS Y SHAREPOINT SOLO ME DEJA EL ESPACIO VACIO DEL IFRAME EN EL FRONT.

QUIEN ME PUEDE AUXILIAR?

MUCHAS GRACIAS