Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.10.2008, 12:42
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Получение ширины контента..
Дело в том что пытаюсь получить реальную ширину документа, точнее его правую границу. Попробовал такой код:
window.onresize=getContentWidth;

function getContentWidth()
{
		div_fv=document.createElement('div');
		div_fv.style.position="absolute";
		//
		document.body.appendChild(div_fv);	
		while (document.body.childNodes.length>4)
		{
		  var first_el=document.body.firstChild;
		  if(first_el.id!="rig_zg"&&first_el.id!="rig_ban") // это мои элементы, которые не нужно считать
			div_fv.appendChild(first_el);
		}
		//
		doc_maxX_fv=div_fv.getBoundingClientRect().right;;
		//
		var insEl=document.getElementById("rig_zg");
		while (div_fv.childNodes.length>0) 
		{
			document.body.insertBefore(div_fv.firstChild,insEl);
		}
		document.body.removeChild(div_fv);
                return doc_maxX_fv;
};

Работает только на фоксе - в IE и в опере getBoundingClientRect().right не изменяется при ресайзе окна (а должен, так как блочные элементы сжимаются друг-к-другу, если окошко сделать поменьше), но при запуске - стабильно. Правда ИЕ тормозит сильно..

1. Что сделать, чтобы работало при ресайзе на ИЕ и опере?
2. Правильный ли это метод, если нет, то как получить? Оговорка - родительский тег div я в документе оставить не могу, иначе порушу некоторые чужие скрипты, поэтому сначала создаю, потом удаляю.

Последний раз редактировалось SunnyDay, 03.10.2008 в 12:44.
Ответить с цитированием
  #2 (permalink)  
Старый 03.10.2008, 13:33
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Так, с ие и оперой разобрался - я использовал переменную doc_maxX_fv, в CSS expressions.

Остался один вопрос - это как-нибудь можно сделать поизящнее, или попроще? В IE например это тормозит немного..
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2008, 14:53
jsch
 
Сообщений: n/a

ответ
document.getElementsByTagName("body")[0].clientWidth
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2008, 14:54
jsch
 
Сообщений: n/a

ответ
если я правильно понял...
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2008, 15:32
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

во.. я давно такой скрипт ищу.. то что надо)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение данных с другис сайтов Dekker8 Events/DOM/Window 5 05.02.2009 09:22
простой show/hide для контента M.C. Элементы интерфейса 44 17.01.2009 19:29
Как создать окно, определенной ширины и высоты AnIva Events/DOM/Window 2 17.09.2008 09:17
Получение данных по протоколу file: Octane AJAX и COMET 0 07.09.2008 21:08
Получение ссылки на объект из метода Octane Общие вопросы Javascript 7 21.08.2008 15:09