Показать сообщение отдельно
  #3 (permalink)  
Старый 03.12.2013, 13:15
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Nailya, метод getComputedStyle() не работает в IE8 и ниже, вместо него используется свойство currentStyle
пример из учебника
<style> #margin-test { margin: 1%; border: 1px solid black; } </style>
<div id="margin-test">Тестовый элемент с margin 1%</div>
 
<script>
function getIEComputedStyle(elem, prop) {
  var value = elem.currentStyle[prop] || 0
 
  // we use 'left' property as a place holder so backup values
  var leftCopy = elem.style.left
  var runtimeLeftCopy = elem.runtimeStyle.left
 
  // assign to runtimeStyle and get pixel value
  elem.runtimeStyle.left = elem.currentStyle.left
  elem.style.left = (prop === "fontSize") ? "1em" : value
  value = elem.style.pixelLeft + "px";
 
  // restore values for left
  elem.style.left = leftCopy
  elem.runtimeStyle.left = runtimeLeftCopy
  
  return value
}

  var elem = document.getElementById('margin-test');
  if (!elem.getComputedStyle) // старые IE
    document.write(getIEComputedStyle(elem, 'marginTop'));
  else
    document.write('Пример работает только в IE<9');
</script>


либо чтобы не заморачиваться в проверках при использовании данного метода написать так
if (!window.getComputedStyle) {
window.getComputedStyle = function(elem, prop) {
   ... // code function
}

Последний раз редактировалось lord2kim, 03.12.2013 в 13:18.
Ответить с цитированием