События Javascript: Определить размер окна при ресайзе. @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 2 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
Punk T-34 Муж.
участник
1
Сообщения: 1265
Зарегистрирован: 17.02.06
Откуда: Бахрейн
Заголовок сообщения: События Javascript: Определить размер окна при ресайзе.
Сообщение Добавлено: 14 Март 2010, 15:22:59 
Есть кусочек кода который выкидывает системное сообщение при каждом ресайзе окна браузера. Плюс, в начале кода я объявил функцию (screenSize) для считывания размеров окна, но пока что она не вызывается. А работает только функция message:

Код:
// JavaScript Document
function screenSize() {
    var w, h; // Объявляем переменные, w - длина, h - высота
    w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
    h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
    return {w:w, h:h};
}
window.onresize = message;
function message() {
   alert("succesfully resized :)");
}

когда же я пытаюсь в событии onresize вызватьобъявленную функцию screenSize, то тут уже не всё так гладко:

Код:
// JavaScript Document
function screenSize() {
    var w, h; // Объявляем переменные, w - длина, h - высота
    w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
    h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
    return {w:w, h:h};
}
window.onresize = message;
function message() {
   alert("succesfully resized :)");
   document.write(
       "Длина = " + screenSize().w + "px<br>" +
       "Высота = " + screenSize().h + "px"
   );
}

В результате много глюков:
– после ресайза окна в браузере выводится только первая строчка из двух: "Длина = " — второй не видно;
– при повторном ресайзе, значение "Длина = " + screenSize().w не меняется;
– при первом ресайзе системное сообщение показывается, а при повторном — уже нет.

Из-за чего это? Вроде бы всё просто написано. Не вижу, где здесь может быть ошибка...

_________________
• NORDSKILL •
lusever
новый человек
0
Сообщения: 1
Зарегистрирован: 27.05.10
Сообщение Добавлено: 27 Май 2010, 18:52:19 
document.write после загрузки перетирает все содержимое документа. Попробуйте выводить так:
Код:
function message() {
   document.getElementById('log_node').innerHTML =
       "Длина = " + screenSize().w + "px<br>" +
       "Высота = " + screenSize().h + "px";
}
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 2 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100