Cita:
Iniciado por zerokilled
¿como estas rellenando el DIV? ¿con ajax? si es asi, ¿en que momento invocas la funcion que crea la ventana?
Código PHP:
function recolocar_ventana()
{
var ventana = document.getElementById("contenido");
var anchofinal = ventana.offsetWidth;
var altofinal = ventana.offsetHeight;
alert("Anchofinal: "+anchofinal+", Altofinal: "+altofinal);
ventana.style.marginLeft = "-"+ (anchofinal/2) + "px";
ventana.style.marginTop = "-" + (altofinal/2) + "px";
}
function crear_ventana(nombre, ancho, alto, referencia, seccion)
{
var anterior = document.getElementById(nombre);
if ( !anterior ) //Si no existe ya esa ventana creala.
{
var divprincipal = document.createElement("div"); //Creamos un elemento div
divprincipal.setAttribute("id", nombre); //Le asignamos como Id el parámetro nombre.
divprincipal.style.visibility = "visible";
//Creamos sus dos divs hijos.
var hijoprincipal = document.createElement("div");
divprincipal.appendChild(hijoprincipal);
hijoprincipal.setAttribute("id", "fondo");
//Atributos de estilo CSS:
hijoprincipal.style.position = "absolute";
hijoprincipal.style.backgroundColor = "#CCCCCC";
hijoprincipal.style.opacity = "0.5";
hijoprincipal.style.filter = "alpha(opacity=50)";
hijoprincipal.style.height = "100%";
hijoprincipal.style.width = "100%";
hijoprincipal.style.top = "0";
hijoprincipal.style.left = "0";
hijoprincipal.style.zIndex = "1";
var hijosecundario = document.createElement("div");
divprincipal.appendChild(hijosecundario);
hijosecundario.setAttribute("id", "contenido");
//Atributos de estilo CSS:
hijosecundario.style.position = "absolute";
hijosecundario.style.backgroundColor = "#FFFFFF";;
hijosecundario.style.top = "50%";
hijosecundario.style.left = "50%";
hijosecundario.style.zIndex = "2";
hijosecundario.style.padding = "25px";
xhr = getHTTPObject();
xhr.onreadystatechange = function(){
if(this.readyState != 4)return;
hijosecundario.innerHTML = this.responseText; //hijosecundario es el objeto DOM que contendrá lo que se cargue en la petición ajax
}
xhr.open('get', 'http://www.midominio.com/objetos/formularios/'+ nombre +'.php?sec='+ seccion, true); //Cargar el contenido de la ventana
xhr.send(null);
//Colocamos el divprincipal con sus hijos en el punto de referencia del html o "ancla".
var ancla = document.getElementById(referencia);
ancla.appendChild(divprincipal);
recolocar_ventana(); //Reposicionamos la "ventana"
}
else
{ abrir_ventana(nombre); }
}
Por cierto el error no ocurre en IE, si en FF y Chrome.