2011-12-11 20 views
8

Estoy intentando codificar un iFrame para que funcione como un área de prueba en un HTML/JavaScript/CSS en Chrome en Chrome, pero estoy perdiendo mucha funcionalidad debido a ciertos errores, y me preguntaba si alguien podría decirme cómo configurar el atributo .src del iFrame en una URL con el código html Javascript CSS etc. codificado directamente en el atributo .src. No me digas que no se puede hacer, porque sé que sí, acabo de perder la página web donde encontré este método. Además, como nota al margen, ¿sería posible forzar programáticamente este iFrame para actualizar?Configuración del atributo iFrame src como URI de datos codificados con javascript en cromo

Gracias por su tiempo,

Chris

+0

¿Por qué necesita para hacer esto en primer lugar? ¿A qué errores te refieres? –

+0

Javascript no se ejecutará correctamente si simplemente edito los contenidos de iFrames a través del DOM estándar. – user1030453

+1

@Pekka, lo siento. Tal vez no lo estoy explicando correctamente, pero he visto ejemplos en los que el atributo src de un iFrame se reemplaza con un URI de datos de tipo texto/html. Alguien podría, por lo menos, dirigirme a una página con instrucciones para establecer un atributo iFrames .src en un URI de datos/URL codificado a partir de una cadena en Javascript, podría intentar averiguar el resto. Por favor, todavía no me he dado cuenta de esto. – user1030453

Respuesta

4

Según mi investigación, parece que esto se ha considerado un riesgo de seguridad y, por lo tanto, no se permite en todos los navegadores.

MS IE site link extracto:

URIs de datos son compatibles sólo para los siguientes elementos y/o atributos.

  • objetos (sólo imágenes)
  • img
  • input type = imagen
  • enlace
  • declaraciones CSS que aceptan una URL, como fondo, BackgroundImage, y así sucesivamente.

HTML5 Seguridad Cheatsheet: http://html5sec.org/

0

iframe Actualizar:

document.getElementById('iframeid').src = document.getElementById('iframeid').src 
4

iframeEl.src = "data: text/html; charset = UTF-8" + contenido;

+1

No puedes usar un URI de datos si necesitas soportar IE - mira http://msdn.microsoft.com/en-us/library/cc848897%28v = vs.85% 29.aspx – robocat

1

Sí se puede hacer - ver http://sparecycles.wordpress.com/2012/03/08/inject-content-into-a-new-iframe/

Tenga en cuenta que el iframe tendrá el mismo origen que la página original, lo que no sería de desear y mayo tenga serias consideraciones de seguridad dependiendo de lo que esté haciendo.

Un ejemplo del uso del javascript: técnica de esquema está aquí: http://jsbin.com/uhenuz/4 (. Si se utiliza con https necesitaría googlear extra y buena prueba para comprobar que la alerta mixta https/http nunca puede llegar)

Cuestiones relacionadas