Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2010, 12:32
Аватар для Punk T-34
Новичок на форуме
Отправить личное сообщение для Punk T-34 Посмотреть профиль Найти все сообщения от Punk T-34
 
Регистрация: 15.03.2010
Сообщений: 2

Определить размер окна при ресайзе.
Есть кусочек кода, который выкидывает системное сообщение при каждом ресайзе окна браузера. Плюс, в начале кода я объявил функцию (screenSize) для считывания размеров окна, но пока что она не вызывается. А работает только функция message:
function screenSize() {
    var 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("successfully resized");
}

когда же я пытаюсь в событии onresize вызватьобъявленную функцию screenSize, то тут уже не всё так гладко:
function screenSize() {
    var 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("successfully resized");
   document.write(
       "Длина = " + screenSize().w + "px<br>" +
       "Высота = " + screenSize().h + "px"
   );
}

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

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

Последний раз редактировалось Punk T-34, 15.03.2010 в 12:34.
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2010, 12:36
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://alljs.ru/2009/12/document-write/
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2010, 12:41
Аватар для Punk T-34
Новичок на форуме
Отправить личное сообщение для Punk T-34 Посмотреть профиль Найти все сообщения от Punk T-34
 
Регистрация: 15.03.2010
Сообщений: 2

хм, а ошибка только в выводе на экран? (document.write)
Если так, то для меня это не принципиально. document.write я использовал чисто для проверки работы функции screenSize. Просто нужно было знать срабатывает событие или нет?
Если срабатывает, то я буду передавать переменные высоты и ширины экрана во флеш. И на этом всё.

P.S. Может, есть более простые способы проверки?
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2010, 12:45
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Punk T-34
хм, а ошибка только в выводе на экран?
document.write уберите, чтобы понять.

Сообщение от Punk T-34
P.S. Может, есть более простые способы проверки?
Проверки чего? Срабатывает ли событие resize? Срабатывает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скролл окна при добавлении контента "сверху"" yaneblog Events/DOM/Window 0 22.01.2010 23:00
Вывод данных единожды, при открытии окна? Ggorsh Events/DOM/Window 1 28.04.2009 01:04
Завершение процесса воспроизведения видео при закрытии окна IE skif Общие вопросы Javascript 0 11.03.2009 08:11
как при открытии окна закрыть предыдущее Евдокимова Events/DOM/Window 3 16.09.2008 17:12
как определить позицию элемента относительно окна scuter Events/DOM/Window 5 07.05.2008 18:47