Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Наши скрипты > Размеры окна, области, элемента


Автор: Aliance 3.10.2005, 20:02
Задача:
Определить размеры окна (разрешение в пикселях)

Решение:
Для начала напишем функцию, благодоря которой мы съэкономим массу времени при дальнейшем поиске ссылок на элемент:
Код

// Глобальные переменные
var isCSS, isW3C, isIE4, isNN4, isIE6CSS;

// функция инициализации
// это обязательно нужно инициализировать ПОСЛЕ загрузки
// страницы, чтобы документ успел сформировать свое содержимое
function initAPI() {
   if (document.images) {
      isCSS = (document.body && document.body.style) ? true : false;
      isW3C = (isCSS && document.getElementById) ? true : false;
      isIE4 = (isCSS && document.all) ? true : false;
      isNN4 = (document.layers) ? true : false;
      isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
   }
}

// собственно инициализируем этот API
window.onload = initAPI;

// получаем строку с именем объекта или ссылку на него
function getObject(obj) {
   var theObj;
   if (typeof obj == "string") {
      if (isW3C) {
         theObj = document.getElementById(obj);
      } else if (isIE4) {
         theObj = document.all(obj);
      } else if (isNN4) {
         theObj = document.layers(obj).document;
      }
   } else {
      theObj = obj;
   }
   return theObj;
}


Далее определяем ширин/высоту окна браузера:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>© AlianceHTMLEditor [ http://editor.sut.net.ru/editor.html ]</TITLE>
<script type="text/javascript" language="JavaScript">
<!--//--><![CDATA[//><!--

var x,y;
// общий синтаксис
if (self.innerHeight) {
    x = self.innerWidth;
    y = self.innerHeight;
// IE 6 Strict Mode
} else if (document.documentElement && document.documentElement.clientHeight) {
    x = document.documentElement.clientWidth;
    y = document.documentElement.clientHeight;
// Остальные версии IE
} else if (document.body) {
    x = document.body.clientWidth;
    y = document.body.clientHeight;
}

alert("Ширина: "+x+"\nВысота: "+y);

//--><!]]>
</SCRIPT>
</HEAD>

<BODY>

контент

</BODY>
</HTML>


Полезно: http://www.quirksmode.org/viewport/compatibility.html


Добавлено @ 20:06
Определяем разрешение монитора:

Код

alert("Размер экрана составляет: "+screen.width+" - "+screen.height+"px");

Автор: Sardar 5.10.2005, 17:02
getObject - это ещё что такое? smile
Для тех кто наивно считает, что различия между "старым" и "новым" браузером это только способ выборки обьекта по идентификатору... вообщем читайте доку и пробуйте, тогда станет ясно что старый браузер просто физически не может сделать то что вы хотите. Ни за какие коврижки Опера 6 не сможет менять стиль display у элементов, а NN4 не имеет обьекта style вообще.

Ну и напоследок: старые браузеры больше не используються, они умерли, фраза "наш код работает даже в очень старых браузерах" звучит как "мы остались в каменом веке, функционально наши странички более убоги чем домашняя страничка Васи Пупкина" smile

Автор: Kasper1985 11.6.2007, 21:37
Подскажите пожалуйста как сделать чтобы свободно позиционируемы элементы на странице не смещались в сторону при изменении разрешения экрана, ни при нажатии f11 и т.д. Заранее спасибо.
И почему flash  ролик в IE повторяется не 1 раз, а в опере и в мозиле только 1 раз, ка кэтого избежать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)