Подтвердить что ты не робот

Как установить поле объекта в IE?

Я пытаюсь установить маржу объекта из JavaScript. Я могу сделать это в Opera и Firefox, но код не работает в Internet Explorer.

Вот у меня есть JavaScript:

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

И он называется так:

SetTopMargin("test_div_id", 100);

Знает ли кто-нибудь код, который будет работать в Internet Explorer?

4b9b3361

Ответ 1

[Обновлено в 2016] Во всех текущих браузерах (включая IE8 +) ваш код

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

отлично работает.

В очень старых версиях IE (< 8) вы должны использовать это нестандартное приспособление:

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

EDIT - из удаленного комментария OP:

Обратите внимание, что, хотя вы можете использовать style.setAttribute('margin-top',..) в текущих IE, 8 и старше требуют style.setAttribute('marginTop',..)

Ответ 2

Ваш код работает в IE8 для меня.

<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>

В IE6 он работает также после очень короткой паузы.

Ответ 3

Прежде всего, вы должны действительно использовать библиотеку javascript, такую ​​как jQuery или Dojo. Я также рекомендую www.debugbar.com для проверки IE DOM.

О вашей проблеме, elem.style = "margin: 10px" должен работать в IE.

Надеюсь, это поможет!