2010-12-14 19 views
7

que tiene un iframe:iFrame en blanco en el IE

<iframe src="http://externaldomain.com/something.html"> 

Si something.html de externaldomain.com tiene el css:

html { position: relative; } 

En IE, que hará que el iframe como en blanco. Todos los demás navegadores están bien.

¿Alguien sabe de una solución? Recuerde la misma política de origen. No puedo alterar nada dentro del iframe con javascript ni cambiar el css ya que el iframe src es externo.

Gracias.

+0

¿Estás 100% seguro de estar en blanco del marco flotante que viene de? No puedo pensar por qué debería –

+1

¿Puede proporcionar una URL de muestra para probar? –

+0

puede proporcionar el código completo que está utilizando? – Varun

Respuesta

0

Comenzaré leyendo este Another Cross Domain iFrame Communication Technique y luego miraré una solución AJAX más elegante. He visto muchas situaciones en las que los iframes de dominios cruzados simplemente no funcionan (y por una buena razón).

IFrames están un paso por encima de IE en el eje del mal (OMI)

1

Como solución alternativa, si todo lo demás falla, puede descargar el contenido de something.html utilizando la lógica del lado del servidor, como ASP.NET o PHP, y guardarlo en su servidor web local en alguna parte. Entonces puede evitar la política de origen idéntico, o incluso puede modificar el HTML/CSS usted mismo en el servidor, por ejemplo, eliminar la posición ofensiva: relativa.

+0

¡Esta es una muy mala solución! En primer lugar, podría terminar con material protegido por derechos de autor en su propio servidor. Luego está la cuestión de las rutas relativas a las imágenes y esas cosas no funcionan, e incluso si las cambia a rutas absolutas, terminará con imágenes que no se cargan debido a la protección de enlaces activos y tales ... – patrick

+0

@patrick De acuerdo, pero el la pregunta describe una situación muy incómoda para empezar. Si el derecho de autor es un problema, uno solo puede descargarlo desde el sitio de destino y pasarlo a cada solicitud (rendimiento subóptimo, por supuesto). La protección Hotlink es un problema posible, pero no puedo saber con certeza cuál es la situación con eso. Y con respecto a las rutas relativas, respondiste tu propia pregunta. Es por eso que prefigé mi respuesta con "Como solución alternativa, si todo lo demás falla ..." –

8

Utilice la siguiente sintaxis que va a funcionar.

darle el estilo = "position: relative;" para su iframe funcionará en IE.

+0

¡Gracias, esto me sirvió de algo! Excelente sugerencia – Beriz

+0

A veces, iframe contiene información de la página pero se comprime. En ese caso, iframe debería tener un valor de min-height, min-width para enfrentar ese problema – kidz

0

iframe debe tener atributos ID

window.parent.document.getElementById('iframeid').contentWindow.document.execCommand('print', false, null); 
Cuestiones relacionadas