Я пытаюсь установить маржу объекта из 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?
Странно, я просто попробовал образец, приведенный внизу, который использует мой код, и он работает .... очень запутался: s



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


[Обновлено в 2016 г.] Во всех текущих браузерах (включая IE8 +) ваш код
document.getElementById(ObjectId).style.marginTop = Value.ToString() + 'px';
работает отлично.
В версиях очень старый IE (<8) вместо этого вы должны использовать это нестандартное приспособление:
document.getElementById(ObjectId).style.setAttribute(
'marginTop', Value.ToString() + 'px');
РЕДАКТИРОВАТЬ - Из удаленного комментария OP:
Note that while you can use style.setAttribute('margin-top', ..) in current IEs, 8 and older require style.setAttribute('marginTop', ..)
Прежде всего, вам действительно стоит использовать библиотеку javascript, такую как jQuery или Dojo. Я также рекомендую www.debugbar.com для проверки IE DOM.
Насчет вашей проблемы, elem.style = "margin: 10px" должен работать в IE.
Надеюсь это поможет!
Причина, по которой я не использую библиотеку, заключается в том, что она сделана на заказ. Создан для небольшого размера и для конкретной работы. Я создаю свою облегченную версию лайтбокса
У меня ваш код работает в 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 он, похоже, тоже работает после очень короткой паузы.
Я просто попробовал ваш код в IE7, и он отлично сработал ...