Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Opera отказывается работать с DOM (https://javascript.ru/forum/events/7981-opera-otkazyvaetsya-rabotat-s-dom.html)

cepreu4 01.03.2010 20:24

Opera отказывается работать с DOM
 
Десятая Опера (10.1, 10.5 бета). Отказывается работать с элементами документа вообще. Самый простой код:
element = document.getElementById('id')
element.property = value

приводит к ошибке. Опера не может сконвертировать element в объект.
Самое странное, что document.all работает.
Тестирую на локальном сервере, пакет Denwer, на системе Windows Vista.
Перелопатил весь интернет, незнаю в чём проблема.
Заранее благодарен.

Octane 01.03.2010 20:42

покажите пример

cepreu4 02.03.2010 00:12

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="javascript" type="text/javascript" defer="defer">
          alert (document.getElementsByTagName("DIV").item(0));
</script>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title>Тестовый заезд</title>
</head>

<body>
<div id="id" style="border:solid 1px black; display:table;">Something</div>
</body>
</html>


alert показывает "null"
P.S. Сейчас выяснилось, что и в FF тоже по какой-то причине.

Octane 02.03.2010 00:19

Все правильно. defer поддерживают не все браузеры, а только IE и новые версии Firefox, поэтому вы ищите элементы до того, как они появляется в документе, соответственно получаете null.

Gvozd 02.03.2010 00:19

DIV еще не существует на момент вызова скрипта
либо разместите код скрипта после DIV-а, либо вызывайте его после события загрузки DOM-а - DOMContentLoad, либо по window.onload

cepreu4 02.03.2010 00:37

Блин! Сколько ж я голову поломал над этим! Спасибо приогромнейшее!


Часовой пояс GMT +3, время: 20:40.