Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема JavaScript в Опере

422
04 июля 2007 года
Dimarik
181 / / 12.02.2005
Здравствуйте!
Существует следующая проблема.
Имеется следующая структура:
<div id="main">
<div id=3>
<div id=4></div>
</div>

<div id=1>
<div id=2></div>
</div>
</div>

Необходимо при помощи JS переместить контейнер <div id=3> вместе с его предками в контейнер <div id=1>. Делаю так:
var mainNode //отец узлов Node1 и Node3
var Node1 //узел для div id=1 каким-то образом получаем
var Node3 //узел для div id=3 каким-то образом получаем

var copyNode=Node3.cloneNode(true) // делаем копию перемещаемого узла

mainNode.removeChild(Node3); //удаляем узел Node1 из mainNode
Node1.appendChild(Node3); //добавляем в узел Node1 в Узел Node3

В результате в IE и FF всё работает отлично, но Опера жёстко косячит.
А именно, после того как перемещение произошло, узел Node1, визуально на странице встаёт в самый вверх, а после него идёт большой пробел, а потом следует содержимое узла Node3. Как избавится от этого пробела???
P.S. Объяснил как смог :)
12
04 июля 2007 года
alekciy
3.0K / / 13.12.2005
У меня код:
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<title>Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
</style>
</head>
<body>
<script type="text/javascript">
function foo() {
    var node1 = document.getElementById('1');
    var node2 = document.getElementById('2');
    var newNode = node1.cloneNode(true);
    node2.appendChild(newNode);
}
</script>
<div id="1">
    <div>Вложение в первый див</div>
</div>
<div id="2" &#111;&#110;click="foo()">
    <div>Вложение во второй див</div>
</div>
</body>
</html>

Отлично везде работает. И ни каких пробелов не вижу...

Короче, за****ся я на этой неделе в телепатов играть. В общем в студию:
1) полный код страницы (не забываем обрамлять тего CODE!!! :mad: );
2) скриншот страницы с указанием красными стрелочками, что там не так;
3) версии браузеров.
7.8K
05 июля 2007 года
Tingo
201 / / 17.05.2007
возможно даже дело в стилях...
12
05 июля 2007 года
alekciy
3.0K / / 13.12.2005
Я меня такие же подозрения. Но в телепатов надоело играть. Народ спрашивает, а привести код не удосуживается. Видимо решения проблемы им нахрен не нужно.
422
09 июля 2007 года
Dimarik
181 / / 12.02.2005
Спасибо, что не обошли проблему стороной!
Версия Оперы 8.5. Если код весь привести, то придётся очень много разбираться. Скорее всего дело не в стилях, т.к. Опера ведёт себя очень странно. После осущесвления данной операции, если вывести сообщением обычным alert("Hello!"), то всё встаёт на свои места. Т.е. получается, что браузер не отрисовывает полученное. И вот было решено не заморачиваться и не оптимизировать под оперу.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог