Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Выпадающее меню поиска назначить поверх фрейма

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
 
Вытянул довольно шустрый поисковый скрипт с одного из проектов Студии Лебедева и походу настройки, появилась необходимость выводить его меню поверх фрейма (планируется, что это будет словарь, упакованный в CHM-файл). К сожалению, визуализировать пример для наглядности на специальных сайтах не представляется возможным, потому что файлы велики. Если сочтёте возможным взглянуть, помимо прочего, в архиве будет "_index.htm", открыв который, надо будет нажать на "Ваш город" в верхнем фрейме и задача в том, чтобы выпадающее меню перекрывало бы собой нижний фрейм. Надеюсь, что это в принципе возможно.

Всего записей: 865 | Зарегистр. 05-04-2010 | Отправлено: 01:45 06-08-2016 | Исправлено: D1D1D1D, 01:54 06-08-2016
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D
такое невозможно между фреймами (да и вообще забывать нужно о них). возможно если основное меню будет в родительской странице, а остальное (то, что в нижнем фрейме) подгружается в iframe

Всего записей: 9893 | Зарегистр. 20-09-2014 | Отправлено: 22:31 07-08-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо за идею, но по некоторым причинам перенес это меню в левый фрейм, расширяющийся/схлопывающийся по клику. Соответственно, появился вопрос, как назначить действие "схлопывания" на оригинальную кнопку скрипта, скрывающую содержимое поискового окна, но не фрейм. Иначе говоря, как кнопку скрытия поискового меню превратить в кнопку, закрывающую панель? То есть, как я предполагаю, тут требуется функцию схлопывание фрейма из следующего фрагмента (из файла "tree.js")

Код:
function _onclick(e) {
   var fs1 = parent.document.getElementById("fs1");
   var el = (typeof(e) == "undefined") ? event.srcElement : e.target
   if (el.tagName != "IMG") return
   var div = el.parentNode
   if (div.className == "open")
      { div.className = "close"; el.src = el.src.replace("open","close")
      fs1.cols = "34px,*";
 }
   else if (div.className == "close")
      { div.className = "open"; el.src = el.src.replace("close","open")  
      fs1.cols = "450px,*";
}
   return false
}

 
представить в виде события onclick, которое можно было бы подставить для кнопки скрытия меню, в следующем формате —

Код:
OnClick="document.getElementById('searchbox').focus();return addInfo('');"

 
http://fracton.rgho.st/75WK2zNj2

Всего записей: 865 | Зарегистр. 05-04-2010 | Отправлено: 06:05 15-08-2016 | Исправлено: D1D1D1D, 06:11 15-08-2016
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
закрывающую панель?

там, где закрывается, добавить код для изменения ширины фрейма в родительском окне.
если я правильно понял в чем дело, так как по линку в файлах выводится непонятно что.

Код:
<frameset id="fs1" cols="34px,*" frameSpacing="3" frameBorder="1" border="0" bordercolor="#fff">

меню, ессно, не видно в этих 34 пикселях.

Всего записей: 9893 | Зарегистр. 20-09-2014 | Отправлено: 07:41 15-08-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Там как бы ширина в 34px для фрейма — дефолтная, а если нажать на изображение лупы, то фрейм выдвигается уже на 450px. И задача в том, чтобы назначить изображению косого креста (справа поискового меню) — действие сужения фрейма, чтобы снова фрейм задвигался на 34px. За это, насколько могу судить, отвечает следующий фрагмент кода файла "tree.js" —

Код:
 
   else if (div.className == "close")  
       { div.className = "open"; el.src = el.src.replace("close","open")  
       fs1.cols = "450px,*";
 

 
который есть необходимость назначить действию от клика по изображению косого креста.

Всего записей: 865 | Зарегистр. 05-04-2010 | Отправлено: 12:45 15-08-2016 | Исправлено: D1D1D1D, 12:53 15-08-2016
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
а если нажать на изображение лупы, то фрейм выдвигается уже на 450px.

ну так не выдвигается..
 
правда такое может быть в случае открытия страницы с жесткого диска, а не с сервера

Цитата:
Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.

 
ну да ладно.. там висит несколько обработчиков на клик на этой кнопке.
простейшая затычка..  

Код:
<span class="icon-close icon popup_close" onclick='myclose()'></span

и

Код:
function myclose() {
  parent.document.getElementById("fs1").cols = "34px,*";
}

можно и без лишней функции - запихнуть в onclick

Всего записей: 9893 | Зарегистр. 20-09-2014 | Отправлено: 18:39 15-08-2016 | Исправлено: Mavrikii, 23:41 15-08-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Спасибо большое! Отлично подошло. По аналогии сделал функцию, с кодом, расширяющим фрейм, повесил на иконку лупы, — и тем самым в функциях из tree.js отпала необходимость)) Только вот теперь по команде вывода фрейма, содержимое поискового окна затухает (явно с эффектом fade) и так и не удалось выяснить, где запретить, чтобы оно никогда исчезало.
 

Цитата:
ну так не выдвигается..    правда такое может быть в случае открытия страницы с жесткого диска, а не с сервера

Правильно ли понял, что у Вас по кликам на изображении лупы показ фрейма не переключается? У меня на Win7 и через IE11 отрабатывает.

Всего записей: 865 | Зарегистр. 05-04-2010 | Отправлено: 03:10 16-08-2016 | Исправлено: D1D1D1D, 03:13 16-08-2016
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
D1D1D1D

Цитата:
Правильно ли понял, что у Вас по кликам на изображении лупы показ фрейма не переключается? У меня на Win7 и через IE11 отрабатывает.

страница требует открытия с сервера, не локального диска (по крайней мере в хроме)
 

Цитата:
По аналогии сделал функцию, с кодом, расширяющим фрейм, повесил на иконку лупы

не совсем понятно о чем речь, нужно указывать последовательность действий

Всего записей: 9893 | Зарегистр. 20-09-2014 | Отправлено: 02:30 17-08-2016
D1D1D1D

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii

Цитата:
страница требует открытия с сервера, не локального диска (по крайней мере в хроме)

Если есть возможность, просьба посмотреть в IE, т.к. код предназначается для работы в CHM.
 

Цитата:
нужно указывать последовательность действий

То есть, я тогда зачистил старые функции из файла "tree.js" и вместо них указал две новые —

Код:
 
function myClose() {  
   var fs1 = parent.document.getElementById("fs1");
   parent.document.getElementById("fs1").cols = "34px,*";  
}
function myOpen() {  
   var fs1 = parent.document.getElementById("fs1");
   parent.document.getElementById("fs1").cols = "450px,*";  
}

 
задействовав их для  

Код:
 
<span class="icon-close icon popup_close" onclick='myClose()'>
 

и для

Код:
 
<div class="close" onclick='myOpen()'>
 

 
Потом оказалось, что в этом свои неудобства есть, а поэтому хотел бы узнать, можно ли вместо ссылки на myOpen(), ссылаться на _onclick(), чтобы было согласование и очерёдность действий в работе двух событий? А то иначе (помимо того, что содержимое окна исчезает), по закрытию фрейма через myOpen() — по _onclick() фрейм тоже закрывается, потому что функция сменила класс.

Всего записей: 865 | Зарегистр. 05-04-2010 | Отправлено: 15:57 17-08-2016 | Исправлено: D1D1D1D, 16:04 17-08-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Выпадающее меню поиска назначить поверх фрейма


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru