Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> событие onMouseOver для фрейма 
:(
    Опции темы
Rian
Дата 3.6.2008, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



есть допустим у меня страница с двумя фреймами(name="Menu",name="Main" например)..В каждый фрейм грузятся разные страницы *.html (без кнопок и всяких там объектов-пустые)..мне нужно чтобы при наведении мыши на какаой либо из этих фреймов (обработчик события onMouseOver) происходило какоето действие...например появлялось окошко alert() или еще чтонибудь..как это сделать? 
PM MAIL   Вверх
Ghirik
Дата 3.6.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



Так и пишите document.frames.Menu.onmouseover = handler; 
где handler - ваша функция обработчик.
Эту строчку нужно прописать либо по событию onload страницы, либо в конце, после тегов ваших фреймов.

В обработчике this - это выш фрейм, который его вызвал.

Код

function handler() {
    alert(this.nodeName);
}


Это сообщение отредактировал(а) Ghirik - 3.6.2008, 16:31


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 3.6.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Не уверен, что у фрейма (окна по смыслу) будет такое событие. Я бы все-таки вешал обработчик на document.body страницы, которая грузится в этот фрейм, а не на сам фрейм как элемент страницы...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 4.6.2008, 05:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



Обработчики работают на фрейме, он всё же принадлежит документу, а не отдельное окно.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 4.6.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Цитата(Ghirik @  4.6.2008,  05:36 Найти цитируемый пост)
он всё же принадлежит документу, а не отдельное окно

Он и то, и то на самом деле. Вот несколько старое, но, имхо, качественное разъяснение про это дело.

Именно поэтому я не уверен, что 1) обработчики на фрейме сработают кроссбраузерно и 2) если в документе во фрейме будут свои обработчики, они их не перебьют...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 4.6.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 919
Регистрация: 26.3.2007

Репутация: 5
Всего: 20



Вот не поленился... smile

onmouseover повешаны на фрейм и body документа во фрейме. Интересно, что onmouseover документа срабатывает первым - "Второй Ok!";

Это сообщение отредактировал(а) Ghirik - 4.6.2008, 12:40


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 4.6.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Цитата(Ghirik @  4.6.2008,  12:39 Найти цитируемый пост)
не поленился...

Спасибо за старания! smile

Убедили, во всем современном работает. Правда, все равно немного по-разному:
  • в IE6 и Op. 9.27 при наведении на элемент внутри фрейма всплывает сначала "Второй Ok!", затем "Ok!";
  • в FF3 RC1 "Ok!" всплывает только один раз - при пересечении границы самого фрейма (что имхо правильно), при пересечении границ элементов внутри фрейма почему-то всплывает дважды "Второй Ok!" (что имхо странно);
  • наконец, в Safari 3.1, если навести мышку и держать ее на одном месте (!) "Второй Ok!" и "Ok!" начинают выскакивать по очереди в бесконечном цикле (видимо, предыдущий alert, перехватывая фокус, "закрывает страничку от курсора", и когда в момент его закрытия курсор снова оказывается на ней, это интерпретируется как mouseover ;)

Но тест полезный!


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Rian
Дата 4.6.2008, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 3.6.2008

Репутация: нет
Всего: нет



Цитата(Ghirik @  3.6.2008,  16:29 Найти цитируемый пост)
Так и пишите document.frames.Menu.onmouseover = handler; где handler - ваша функция обработчик.Эту строчку нужно прописать либо по событию onload страницы, либо в конце, после тегов ваших фреймов.

 спс...но в итоге сделал вот так))

для штмл с фреймами:
    <frameset cols="45%,55%">    
        <frame src="left.html" name="leftFrame" scrolling="auto">
        <frame src="right.html" name="rightFrame" scrolling="auto"> 
    </frameset>    

для left.html:
function onMO(self)
{
    alert(document.title);
}
</script>
</head>
<body onmouseover="onMO(this);">

для right.html аналогично
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.