Как установить маржу объекта в 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?

Я просто попробовал ваш код в IE7, и он отлично сработал ...

Jason Bunting 25.11.2008 20:22

Странно, я просто попробовал образец, приведенный внизу, который использует мой код, и он работает .... очень запутался: s

Cheetah 25.11.2008 21:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
26
2
68 802
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

[Обновлено в 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.

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

Причина, по которой я не использую библиотеку, заключается в том, что она сделана на заказ. Создан для небольшого размера и для конкретной работы. Я создаю свою облегченную версию лайтбокса

Cheetah 25.11.2008 20:49

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

Другие вопросы по теме