Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Выпадающее меню поиска назначить поверх фрейма

Автор: D1D1D1D
Дата сообщения: 06.08.2016 01:45
Привет!

Вытянул довольно шустрый поисковый скрипт с одного из проектов Студии Лебедева и походу настройки, появилась необходимость выводить его меню поверх фрейма (планируется, что это будет словарь, упакованный в CHM-файл). К сожалению, визуализировать пример для наглядности на специальных сайтах не представляется возможным, потому что файлы велики. Если сочтёте возможным взглянуть, помимо прочего, в архиве будет "_index.htm", открыв который, надо будет нажать на "Ваш город" в верхнем фрейме и задача в том, чтобы выпадающее меню перекрывало бы собой нижний фрейм. Надеюсь, что это в принципе возможно.
Автор: Mavrikii
Дата сообщения: 07.08.2016 22:31
D1D1D1D
такое невозможно между фреймами (да и вообще забывать нужно о них). возможно если основное меню будет в родительской странице, а остальное (то, что в нижнем фрейме) подгружается в iframe
Автор: D1D1D1D
Дата сообщения: 15.08.2016 06:05
Спасибо за идею, но по некоторым причинам перенес это меню в левый фрейм, расширяющийся/схлопывающийся по клику. Соответственно, появился вопрос, как назначить действие "схлопывания" на оригинальную кнопку скрипта, скрывающую содержимое поискового окна, но не фрейм. Иначе говоря, как кнопку скрытия поискового меню превратить в кнопку, закрывающую панель? То есть, как я предполагаю, тут требуется функцию схлопывание фрейма из следующего фрагмента (из файла "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
}
Автор: Mavrikii
Дата сообщения: 15.08.2016 07:41
D1D1D1D

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

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

Код: <frameset id="fs1" cols="34px,*" frameSpacing="3" frameBorder="1" border="0" bordercolor="#fff">
Автор: D1D1D1D
Дата сообщения: 15.08.2016 12:45
Там как бы ширина в 34px для фрейма — дефолтная, а если нажать на изображение лупы, то фрейм выдвигается уже на 450px. И задача в том, чтобы назначить изображению косого креста (справа поискового меню) — действие сужения фрейма, чтобы снова фрейм задвигался на 34px. За это, насколько могу судить, отвечает следующий фрагмент кода файла "tree.js" —

Код:
else if (div.className == "close")
{ div.className = "open"; el.src = el.src.replace("close","open")
fs1.cols = "450px,*";
Автор: Mavrikii
Дата сообщения: 15.08.2016 18:39
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
Автор: D1D1D1D
Дата сообщения: 16.08.2016 03:10
Mavrikii

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


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

Правильно ли понял, что у Вас по кликам на изображении лупы показ фрейма не переключается? У меня на Win7 и через IE11 отрабатывает.
Автор: Mavrikii
Дата сообщения: 17.08.2016 02:30
D1D1D1D

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

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


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

не совсем понятно о чем речь, нужно указывать последовательность действий
Автор: D1D1D1D
Дата сообщения: 17.08.2016 15:57
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,*";
}

Страницы: 1

Предыдущая тема: Разобрать форму с помощью Bash


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.