Foros del Web » Programando para Internet » Javascript »

Problemas con replaceChild

Estas en el tema de Problemas con replaceChild en el foro de Javascript en Foros del Web. Hola, tengo esas funciones: function updateObjectLayer(which){ var el = document.createElement("iframe"); var lay = document.getElementById('Div2').id; //el.setAttribute('id', 'ifrm'); document.all.Div1.replaceChild(el,document.all.bla ); el.setAttribute('src', 'http://www.google.com'); el.setAttribute('name', 'ifbanner'); el.setAttribute('id', 'ifbanner'); } ...
  #1 (permalink)  
Antiguo 04/03/2010, 10:04
 
Fecha de Ingreso: junio-2002
Mensajes: 212
Antigüedad: 22 años, 6 meses
Puntos: 0
Pregunta Problemas con replaceChild

Hola, tengo esas funciones:

function updateObjectLayer(which){

var el = document.createElement("iframe");
var lay = document.getElementById('Div2').id;
//el.setAttribute('id', 'ifrm');
document.all.Div1.replaceChild(el,document.all.bla );
el.setAttribute('src', 'http://www.google.com');
el.setAttribute('name', 'ifbanner');
el.setAttribute('id', 'ifbanner');
}

function updateObjectIframe(which){
for (var i = 0; i < document.getElementsByTagName('iframe').length; i++) {
alert(document.all.ifbanner.name);
}
var el = document.createElement("iframe");
var bla = document.getElementById('ifbanner')
document.all.ifbanner.replaceChild(el,document.all .ifbanner);
el.setAttribute('src', 'http://www.ale.com');
el.setAttribute('name', 'ifbanner2');
el.setAttribute('id', 'ifbanner2');

}


Llamo a la primera y funciona correctamente, me crea el iframe y me muestra google, con otro boton llamo a la segunda luego de haber llamado a la primera y el FFOX me dice Node Not Found.
Hice el alert(document.all.ifbanner.name); y corrobore que me devuelve el nombre correcto, ifbanner pero aun asi con function updateObjectIframe(which) me da el error comentado mas arriba.
Alguien tiene alguna idea de porque? o es que no se puede reemplazar un elemento creado dinamicamente?

Muchas gracias!
__________________
Simuladores y Examenes Cisco, Herramientas de Red Online - Tecnologia y Redes
  #2 (permalink)  
Antiguo 04/03/2010, 10:10
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Problemas con replaceChild

debe ser porque estas usando el objeto no estandar document.all. si miras la consola de firefox veras que te notifica que debes usar la forma estandar para obtener la referencia de un elemento.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 04/03/2010, 10:17
 
Fecha de Ingreso: junio-2002
Mensajes: 212
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Problemas con replaceChild

El error que reporte el Firefox es:

Error: uncaught exception: [Exception... "Node was not found" code: "8" nsresult: "0x80530008 (NS_ERROR_DOM_NOT_FOUND_ERR)" location: "http://127.0.0.1:82/divs.php# Line: 19"]
__________________
Simuladores y Examenes Cisco, Herramientas de Red Online - Tecnologia y Redes
  #4 (permalink)  
Antiguo 04/03/2010, 10:18
 
Fecha de Ingreso: junio-2002
Mensajes: 212
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Problemas con replaceChild

probe incluso

var bla = document.getElementById('ifbanner')
bla.replaceChild(el,bla);

y tampoco funciono

:S
__________________
Simuladores y Examenes Cisco, Herramientas de Red Online - Tecnologia y Redes
  #5 (permalink)  
Antiguo 04/03/2010, 10:37
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Problemas con replaceChild

eso porque estas intentando reemplazar un elemento que no existe en el elemento donde invocas replaceChild. es decir, replaceChild opera sobre los hijos del elemento donde invoques la funcion. en tu caso tienes que subir al elemento padre del elemento que quieres reemplazar y desde ahi invocas la funcion.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 04/03/2010, 10:54
 
Fecha de Ingreso: junio-2002
Mensajes: 212
Antigüedad: 22 años, 6 meses
Puntos: 0
Respuesta: Problemas con replaceChild

Cita:
Iniciado por zerokilled Ver Mensaje
eso porque estas intentando reemplazar un elemento que no existe en el elemento donde invocas replaceChild. es decir, replaceChild opera sobre los hijos del elemento donde invoques la funcion. en tu caso tienes que subir al elemento padre del elemento que quieres reemplazar y desde ahi invocas la funcion.
Exactamente ese era el problema nodifique la función y funciono correctamente.
La pongo modificada para que otro con mi mismo problema pueda ver que cambio.
Código PHP:
function updateObjectIframe(which){
    for (var 
0document.getElementsByTagName('iframe').lengthi++) { 
        
//alert(document.all.ifbanner.name); 
    
}
    var 
el document.createElement("iframe");
    var 
bla document.getElementById('ifbanner')
    var 
bla2 document.getElementById('ifbanner')
    
document.all.Div1.replaceChild(el,bla2);
    
el.setAttribute('src''http://www.astrodestino.com.ar');
    
el.setAttribute('name''ifbanner');
    
el.setAttribute('id''ifbanner');
    


Muchas gracias Zero por tu ayuda!
__________________
Simuladores y Examenes Cisco, Herramientas de Red Online - Tecnologia y Redes

Etiquetas: Ninguno
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 21:52.