Tengo lo siguiente para mostrar una imagen con descripcion en un layer:
Código HTML:
showFotos.prototype.setMsg = function (ft,ti)
{
var ths = this;
//
ths.glb.box = document.createElement ('div');
ths.glb.box.className = 'shBox';
document.body.appendChild (ths.glb.box);
ths.glb.box.style.display = 'none';
//
var fdo = document.createElement ('div');
fdo.className = 'shBox_fdo';
ths.glb.box.appendChild (fdo);
//
var cnt = document.createElement ('div');
cnt.className = 'shBox_cnt';
ths.glb.box.appendChild (cnt);
//
var img = new Image ();
img.onload = function ()
{
var fot = document.createElement ('img');
fot.src = ft;
cnt.appendChild (fot);
//
var tit = document.createElement ('p');
tit.innerHTML = ti;
cnt.appendChild (tit);
//
var fotW = fot.width; // Calculando el ancho de la imagen
cnt.style.width = fotW + 'px';
cnt.style.left = ((ths.winWH('w') - fotW) / 2) + 'px';
//
ths.glb.box.onmouseover = function () { this.style.cursor = 'pointer'; };
ths.glb.box.onclick = function () { document.body.removeChild (this); };
//
ths.glb.box.style.display = 'block';
};
img.src = ft;
};
Funciona perfectamente con cualquier otro navegador que no sea el nefasto Internet Explorer. Investigue por el mismo problema y la solucion es similar a esta que uso, asi que ya me siento de brazos cruzados.
¿Alguna idea como calcular el ancho a la imagen en IE? Sin ese dato, el layer que contiene la imagen no puede asumir el ancho de esta ni mostrar la descripcion bien.
Aqui una muestra de lo que tengo.