Ver Mensaje Individual
  #29 (permalink)  
Antiguo 18/02/2007, 01:31
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Re: Pintar sobre una imagen

Hola:

El problema del envío a iframes creados dinámicamente es algo complejo, pero ahora funciona (al menos en los 3 navegadores probados), en primer lugar hay que discriminar a explorer y lo consigo con esto:

Código:
var _navegador = navigator.userAgent;
var op = /opera/i.test(_navegador); // opera
var mo = /gecko/i.test(_navegador); // mozilla
Y la condición sería !(op || mo)

Y el problema es que el iframe dinámico acepta el atributo name, pero en la colección de ventanas no se queda con ese nombre, así que se recorre la colección de iframes (los tags) y al encontrar el recién creado, asignar a la ventana correspondiente (por la indexación) el nombre del iframe

En resúmen, el código sería:


Código:
nuevo = cuentaIFrames++; // cuentaIFrames es global
nuevoNombre = "NIFrame" + nuevo.toString();
nuevoIframe = document.createElement("iframe");
with (nuevoIframe)	{
	frameBorder = 0;
	id = nuevoNombre;
	name = nuevoNombre;
	width = 32;
	height = 32;
	style.overflow = "hidden";
}
document.getElementById("colecciones").appendChild(nuevoIframe);
document.getElementById("colecciones").appendChild(document.createTextNode(""));
iFs = document.getElementsByTagName("iframe");

for (var i = 0, total = iFs.length; i < total; i ++)
	if (iFs[i] == nuevoIframe && !(op || mo))
		window.frames[i].name = iFs[i].name;
El enlace es el mismo, pero está mucho más funcional.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo