Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Web-программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 19.02.2007, 13:55   [включить плавающее окно]   #1
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Как в JavaScript определить размер окна?

Страница создается с помощью JavaScript. Дизайн страницы хочется менять в зависимости от размера окна браузера. Вопрос - как его получить?
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 19.02.2007, 14:11   [включить плавающее окно]   #2
Аветис
Мужской Умудрённый
 
Аватар для Аветис
 
Регистрация: 21.04.2005
Адрес: Донецк
MSIE, Opera 7+ - document.body.scrollWidth, document.body.scrollHeight
Netscape, Mozilla - document.width, document.height
Opera 5, 6 - document.body.style.pixelWidth, document.body.style.pixelHeight

наверное, прийдется еще и определять тип браузера...
__________________
Не может не Киев, не Минск, ни Москва
В футболе с «Шахтером» сравниться.
Шахтер Суперклуб - Золотые слова.
Ты можешь «Шахтером» гордиться.
Аветис вне форума  
Ответить с цитированием
Непрочитано 19.02.2007, 14:23   [включить плавающее окно]   #3
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
@#$%$
То-то у меня в Опере работает, а в IE - нет.

Как корректно определить тип браузера?
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 19.02.2007, 15:19   [включить плавающее окно]   #4
Аветис
Мужской Умудрённый
 
Аватар для Аветис
 
Регистрация: 21.04.2005
Адрес: Донецк
можно так:
Код:
var name = navigator.appName
var version = navigator.appVersion
или:
Код:
var name=BrowserDetect.browser
var version=BrowserDetect.version
для версии наверное надо еще сделать че-то типа parseFloat
__________________
Не может не Киев, не Минск, ни Москва
В футболе с «Шахтером» сравниться.
Шахтер Суперклуб - Золотые слова.
Ты можешь «Шахтером» гордиться.
Аветис вне форума  
Ответить с цитированием
Непрочитано 19.02.2007, 20:11   [включить плавающее окно]   #5
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Цитата (Аветис) »
MSIE, Opera 7+ - document.body.scrollWidth, document.body.scrollHeight
Netscape, Mozilla - document.width, document.height
Opera 5, 6 - document.body.style.pixelWidth, document.body.style.pixelHeight
До кучи. Opera 9 и firefox 1.5 работает с window.innerWidth, window.innerHeight
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 20.02.2007, 01:00   [включить плавающее окно]   #6
Аветис
Мужской Умудрённый
 
Аватар для Аветис
 
Регистрация: 21.04.2005
Адрес: Донецк
да, щас проверил...

в общем, кода на полстраницы )
__________________
Не может не Киев, не Минск, ни Москва
В футболе с «Шахтером» сравниться.
Шахтер Суперклуб - Золотые слова.
Ты можешь «Шахтером» гордиться.
Аветис вне форума  
Ответить с цитированием
Непрочитано 21.02.2007, 13:49   [включить плавающее окно]   #7
Jabberwocky
Мужской Умудрённый
Автор темы
 
Аватар для Jabberwocky
 
Регистрация: 14.12.2003
Адрес: Москва
Доделаю - вывешу. Браузеров расплодилось...

Сопутствующий вопрос:
В результате кликанья на объект(не важно какой) создаем окно, в котором есть лишь одна картинка.
Как сделать:
1. чтоб окно было по размерам картинки?
2. чтоб окно было всегда наверху, но при этом не мешало работе с нижележащими?

Своими мозгами дошел до такой конструкции:
Код:
function zoom(n, w, h)
  {
    window.opener.close();
    newWindow = window.open("", "Zoom", "width="+w+", height="+h+", dependent=0, toolbar=0, menubar=0, resizable=0, status=0, directories=0");
    newWindow.document.write("<html><head><title>zoom</title></head><body onBlur=\"self.focus()\"><img src="+n+">");
    newWindow.document.write("</body></html>");
    newWindow.resizeTo(newWindow.document.images[0].width+25,newWindow.document.images[0].height+65);
    newWindow.document.close();		
  }
Сей код обладает несколькими недостатками:
1. В Firefox это окно при первом вызове открывается с минимально возможными размерами, и лишь при повторном - в требуемом виде. Создается впечатление, что измерение размеров картинки происходит только после размещения ее в буфере, а это происходит после закрытия потока записи в document. Как это обойти - не понимаю.
2. Конструкция onBlur=self.focus() в Firefox не работает.
В любом случае, эта конструкция не соответствует моему пожеланию - чтобы всплывшее окно не мешало работать нижележащим.

Если у кого есть соображения на этот счет - подсобите.

P.S. По поводу пункта 1. Залив всё что есть в этом виде на сервак обнаружил, что глюк появился и в IE и в Opere. Видать им при запуске с локального компа не нужно было переписывать файлики в кеш.
__________________
Никогда не существовало и не будет существовать никаких «прикладных наук», есть лишь приложения наук (весьма полезные!) © Л. Пастер

Последний раз редактировалось Jabberwocky; 21.02.2007 в 19:40.
Jabberwocky вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:49. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey