Как мне установить поле для объекта в IE? - PullRequest
26 голосов
/ 25 ноября 2008

Я пытаюсь установить поле объекта из 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?

Ответы [ 3 ]

33 голосов
/ 25 ноября 2008

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

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

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

В очень старых IE (<8) версиях, вы должны использовать эту нестандартную штуковину вместо: </p>

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

РЕДАКТИРОВАТЬ - Из удаленного комментария от OP:

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

4 голосов
/ 25 ноября 2008

Ваш код работает в 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, похоже, он работает и после очень короткой паузы.

0 голосов
/ 25 ноября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...