2008-11-25 6 views
25

Estoy tratando de establecer el margen de un objeto desde JavaScript. Puedo hacerlo en Opera & Firefox, pero el código no funciona en Internet Explorer.¿Cómo configuro el margen de un objeto en IE?

Aquí está el código JavaScript que tiene:

function SetTopMargin (ObjectID, Value) 
{ 
    document.getElementById(ObjectID).style.marginTop = Value.toString() + "px"; 
} 

Y se llama así:

SetTopMargin("test_div_id", 100); 

Así que ¿alguien sabe algo de código que funciona en Internet Explorer?

+0

Acabo de probar tu código en IE7 y funcionó bien ... –

+0

Extraño, acabo de probar la muestra proporcionada en la parte inferior que utiliza mi código y funciona .... muy confuso: s – Cheetah

Respuesta

30

[Actualizado en 2016] En todos los navegadores actuales (incluyendo IE8 +), su código

document.getElementById(ObjectId).style.marginTop = Value.ToString() + 'px'; 

funciona bien.

En muy antiguo IE (< 8) versiones, debe utilizar este artilugio no estándar en su lugar:

document.getElementById(ObjectId).style.setAttribute(
    'marginTop', Value.ToString() + 'px'); 

EDITAR - De Comentario eliminado por OP:

Nota que si bien puede usar style.setAttribute ('margin-top', ..) en IEs actuales, 8 y más requieren style.setAttribute ('marginTop', ..)

-2

En primer lugar, realmente debería usar una biblioteca de JavaScript como jQuery o Dojo. También recomiendo www.debugbar.com para inspeccionar el DOM de IE.

Acerca de su problema, elem.style = "margin: 10px" debería funcionar en IE.

Espero que esto ayude!

+0

Motivo que no estoy usando una biblioteca es que es a medida. Creado para ser pequeño y para un trabajo específico. Estoy creando mi propia versión ligera de lightbox – Cheetah

4

Tu código funciona en IE8 para mí.

<html> 
    <head> 
    <script type="text/javascript"> 
    function SetTopMargin (ObjectID, Value) 
    { 
     document.getElementById(ObjectID).style.marginTop = Value.toString() + "px"; 
    } 
    </script> 
</head> 
<body> 
    <button id="btnTest" onclick="SetTopMargin('btnTest', 100);">Test</button> 
</body> 
</html> 

En IE6, parece estar funcionando también después de una pausa muy breve.

+0

Weird ... esa muestra también me funciona. – Cheetah

Cuestiones relacionadas