Mostrando entradas con la etiqueta IE. Mostrar todas las entradas
Mostrando entradas con la etiqueta IE. Mostrar todas las entradas

miércoles, 15 de julio de 2009

Agregar elementos a un a tabla HTML en Firefox e Internet Explorer

Para lograr agregar elementos dinámicamente a una tabla y que funcione en FireFox e Internet Explorer se debe crear la tabla de la siguiente manera:

<html>
<body>
<script language="javascript">
function function2(){
var myBody = document.getElementById('mainbody');

var myElement = document.createElement('tr');
var tds = document.createElement('td');
var celda = document.createTextNode('celda 1');

tds.appendChild(celda);
myElement.appendChild(tds);

celda = document.createTextNode('celda 2');
tds = document.createElement('td');
tds.appendChild(celda);
myElement.appendChild(tds);

myBody.appendChild(myElement);

}
</script>
<body id="myBody">
<table>
<thead>
<tr>
<th>1</th>
<th>2</th>
</tr>
</thead>
<tbody id="mainbody">
</tbody>
</table>
<button onClick="function2();">Put trs</button>
</body>
</html>


Si la tabla no es creada con un TBODY, en IE no funciona apropiadamente y es necesario agregar los elementos usando el atributo innerHTML de la tabla

jueves, 20 de noviembre de 2008

Posicion de objetos en JavaScript

Muchas veces precisamos saber exactamente cual es la posicion de un objeto HTML como una Tabla, un Div, o lo que sea para poder ponerle otro objeto cerca o encima y poder simular por ejemplo un "loading..". Obtener la posicion es a veces dificil porque depende si es relativa, o absoluta y segun las implementaciones de cada Browser. Bueno, aqui hay un par de funciones JavaScript que funcionan para FireFox, IE y Safari y calculan la posicion absoluta del elemento pasado por parámetro.
  function findPosX(obj)
{
var curleft = 0;
if(obj.offsetParent)
while(1)
{
curleft += obj.offsetLeft;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.x)
curleft += obj.x;
return curleft;
}

function findPosY(obj)
{
var curtop = 0;
if(obj.offsetParent)
while(1)
{
curtop += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
else if(obj.y)
curtop += obj.y;
return curtop;
}

Mis fotos en TrekEarth