Foros del Web » Programando para Internet » Javascript »

Problema con appendChild()

Estas en el tema de Problema con appendChild() en el foro de Javascript en Foros del Web. Buenas, estoy intentando insertar elementos a un iframe, pero no lo consigo, para insertarlos en una misma pagina no tengo problemas, pero para insertarlo en ...
  #1 (permalink)  
Antiguo 29/04/2004, 03:43
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 3 meses
Puntos: 5
Problema con appendChild()

Buenas, estoy intentando insertar elementos a un iframe, pero no lo consigo, para insertarlos en una misma pagina no tengo problemas, pero para insertarlo en un iframe no puedo

Código:
<SCRIPT>
function add() {
	var div = document.createElement("div");
	div.style.width = "100px";
	div.style.backgroundColor = "#FFCC00";
	body.appendChild(div);
};
</SCRIPT>
<BODY id="body">
<INPUT TYPE="button" VALUE="Append Child" onclick="add()">
</BODY>
Ese codigo lo hace perfectamente, pero si lo intento hacer con un iframe nada

Código:
<SCRIPT>
var editor;
	
function init() {
	editor = document.getElementById('editor').contentWindow.document;
	editor.designMode = "on";
};

function add() {
	var div = document.createElement("div");
	div.style.width = "100px";
	div.style.backgroundColor = "#FFCC00";
	editor.appendChild(div);
};
</SCRIPT>
<BODY onLoad="init()">
<iframe id="editor"></iframe>
<br>
<INPUT TYPE="button" VALUE="Append Child" onclick="add()">
</BODY>
Pues eso ....
__________________
Usuario registrado de Linux #288725
  #2 (permalink)  
Antiguo 29/04/2004, 07:25
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 5 meses
Puntos: 381
No referencies a un documento con getElementById, hazlo como si de un frame normal se tratara. Dale un name="editor" a tu iframe y pídele las cosas así



var div = editor.document.createElement("div");
div.style.width = "100px";
div.style.backgroundColor = "#FFCC00";
editor.body.appendChild(div);


  #3 (permalink)  
Antiguo 29/04/2004, 09:56
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 3 meses
Puntos: 5
mcuhas gracias tunait jeje el caso es que la forma en la que lo puse funcoiona (a medias) sobre Mozilla sobre IE no ... al final lo que he heco a sido crear seleccione sy rangos, sobre IE esta solucionado ahora tengo el problema bajo Mozilla jeje a ve si puedo .... no sbras como crear un rango en Mozilla no? bueno mas que el rango es la seleccion por que lo hago con:

Código:
document.getElementById('editor').contentWindow.getSelection();
Pero no hay manera e mirado la especificacion en Mozilla para hacerlo sobre el objeto window ....

http://www.mozilla.org/docs/dom/domr...dow_ref24.html

A ve si alguien me puede ayudar
__________________
Usuario registrado de Linux #288725
  #4 (permalink)  
Antiguo 29/04/2004, 10:09
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 3 meses
Puntos: 5
tunait de todas formas .... lo que me digiste no funciona ;-(

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
	<script>
	function init() {
		editor.contentWindow.document.desingMode = "on";
		//alert(editor);
	}
	
	function add() {
		var div = editor.document.createElement("div");
		div.style.width = "100px";
		div.style.backgroundColor = "#FFCC00";
		editor.body.appendChild(div);
	}
	
	window.onload = init;
	</script>
</head>

<body>

<iframe name="editor"></iframe>
<a onClick="add();">Add()</a>
</body>
</html>
Como ves ese codigo da error jeje
__________________
Usuario registrado de Linux #288725
  #5 (permalink)  
Antiguo 29/04/2004, 16:41
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 10 meses
Puntos: 1284
Hola epplestun y tunait :

La idea de tunait vale, pero dentro de la ventana deberías referenciar al "document.body"...

Este es el código que tengo en esta página: http://www.pepemolina.com/probador/index.html

function mostrar() {
window.frames.ventana.document.clear();
window.frames.ventana.document.open();
window.frames.ventana.document.writeln(document.fo rms.losMensajes.mensajero.value);
window.frames.ventana.document.close();
}

Si el documento está abierto la forma es otra (cambiando ventana por editor)
window.frames.editor.document.body.appendChild(... )

Pruébalo y me dices

Saludos

P.D: Abrí el HTMLarea con Mozilla y no me salía con formato... mañana voy a hacer una captura y la voy a poner en el post para que la veas.
  #6 (permalink)  
Antiguo 30/04/2004, 00:16
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 23 años, 3 meses
Puntos: 5
jeje yo te la hago ahora



JEJE es FIreFox 0.8 basado en el render Gecko de Mozilla

En cuanto a lo del appendChild jeje muchas gracias voy a probarlo
__________________
Usuario registrado de Linux #288725
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:07.