Как установить поле объекта в 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?
Ответы
Ответ 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.
Надеюсь, это поможет!