schools insertar example contenido centrar javascript html iframe internet-explorer-8 internet-explorer-9

javascript - example - insertar iframe html



Cómo configurar contenido HTML en un iframe (5)

Tengo una cadena de HTML

<html> <body>Hello world</body> </html>

y quiero establecerlo en un iframe con JavaScript. Estoy tratando de configurar el HTML así:

contentWindow.document.body.innerHTML

o

contentDocument.body.innerHTML

o

document.body.innerHTML

pero IE dice "Acceso denegado". o "El objeto no admite esta propiedad o método". o "elemento final inválido para la acción". errores

Aquí está mi código completo:

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery_1.7.0.min.js"/> <script type="text/javascript"> $(document).ready(function(){ var htmlString = "<html><body>Hello world</body></html>"; var myIFrame = document.getElementById(''iframe1''); // open needed line commentary //myIFrame.contentWindow.document.body.innerHTML = htmlString; //myIFrame.contentDocument.body.innerHTML = htmlString; //myIFrame.document.body.innerHTML = htmlString; //myIFrame.contentWindow.document.documentElement.innerHTML = htmlString; }); </script> </head> <body> <p>This is iframe: <br> <iframe id="iframe1"> <p>Your browser does not support iframes.</p> </iframe> </body> </html>


¿Qué tal document.documentElement.innerHTML . Pero sé que todo en la página será reemplazado, incluso el script que hace eso.

Para un iframe, sería así myIFrame.contentWindow.document.documentElement.innerHTML


El innerHTML es un poco complicado, especialmente en IE, donde los elementos como thead son de solo lectura y causan muchos problemas.

En función de la documentación en msdn, puede probar documentMode que proporciona una propiedad innerHTML .

myIFrame = myIFrame.contentWindow || myIFrame.contentDocument.document || myIFrame.contentDocument; myIFrame.document.open(); myIFrame.document.write(''Your HTML Code''); myIFrame.document.close();

esto solo podría funcionar en IE.


Podrías usar:

document.getElementById(''iframe1'').contentWindow.document.write("<html><body>Hello world</body></html>");

Aquí hay un jsFiddle , que funciona en todos los principales navegadores.

Tenga en cuenta que en lugar de contentDocument.write debe usar contentWindow.document.write : esto también funciona en IE7.


intentalo:

$(''iframe'').load(function() { $(this).contents().find(''body'').append("Hello world"); });

actualizar:

$(function(){ $(''iframe'').load(function() { $(this).contents().find(''body'').append("Hello world"); }); })


var htmlString="<body>Hello world</body>"; var myIFrame = document.getElementById(''iframe1''); myIFrame.src="javascript:''"+htmlString+"''";

Con html5 podrá usar el atributo srcdoc .