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 .