Показать сообщение отдельно
  #1 (permalink)  
Старый 01.07.2010, 15:56
Аспирант
Отправить личное сообщение для neurostep Посмотреть профиль Найти все сообщения от neurostep
 
Регистрация: 10.04.2008
Сообщений: 83

Opera игнорирует wrapper - слой
Здравствуйте, коллеги.

В последнее время я очень обозлен на браузер Оперу, особенно на десяточку - уж очень много багов из "неоткуда" появляется. Но если с определенными багами худо-бедно справлялся, то со следующим мучаюсь довольно давно.

так вот, есть такая html-конструкция:

<style type="text/style">
#container, #subcontainer {
    position:relative
}
</style>

<div id="container">
    <div id="subcontainer">
    </div>
</div>


так вот, при определенных условиях (например ввод текста юзера в форму и последующий сабмит) я добавляю динамически в #subcontainer элементы, стили у них прописаны в атрибуте style (position:absolute; left, top). То, что юзер ввел, я запоминаю в хэше ссылки(#user_data), дабы при обновлении страницы ему не приходилось заново вводить текст.

Так вот, если страница изначально была загружена как http://domain.ru, то все замечательно и предсказуемо выводится, но, если обновить страницу с заполненной юзером данными ранее, то есть http://domain.ru/#user_data , то все эжлементы, которые добавляются, просто игнорируют контэйнер с position:relative, и строятся относительно body.

Что я только не пробывал уже, да repaint/reflow делал с помощью вот этой функции:
function forceOperaRepaint() {
	if (window.opera) {
		var bs = document.body.style;
		bs.position = 'relative';
		setTimeout(function() {
			bs.position = 'static';
		}, 1);
	}
}


все равно ничего не выходит. Может знает кто, что с этим "чудом" делать?

Кстати, в Опера 9.X все нормально и косяков не наблюдается.

Заранее благодарю!
Ответить с цитированием