Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
1

Нужно что-то типа "всплывающего окна" в админке

04.10.2012, 18:36. Показов 933. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста, как лучше сделать. В настоящий момент в админке есть такая фишка. Кликнув по ссылке открывается отдельное окно через window.open (js). Но вот закрыть через js не получается. Но это еще полбеды. Вот если свернуть его, то потом кликая по ссылке, немного теряешься, поскольку окно открыто, но свернуто, поэтому не видно. (в коде у меня загрузка в то же окно).
Какой еще может быть вариант "плавающего окна"?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2012, 18:36
Ответы с готовыми решениями:

Что делать, чтобы нажав за пределы всплывающего окна оно не закрывалось?
Здравствуйте, нужна помощь. На сайте есть всплывающее окно, мне нужно, чтобы человек не смог...

Как сделать что бы после всплывающего окна появилась ссылка на загрузку файла
Всем привет! Прикрутила с помощью плагина ContactForm 7 всплывающее окно, теперь нужно что бы...

Отключить скрытие окна при клике вне всплывающего окна
Здравствуйте. Есть плагин такой для вордпресс, называется он Popups (не стал размещать в тему...

Закрытие всплывающего окна
Привет всем. С помощью Jquery написан такой код: При клике на кнопку всплывает php форма с...

Замена всплывающего окна
Добрый день уважаемые форумчане. Назрел один вопросик, для кого-то он покажется простым, но меня,...

13
Заблокирован
04.10.2012, 20:36 2
izcian, всякое окно, открытое методом window.open (), можно закрыть

либо из него самого - self.close ();
либо из его родителя, тогда при открытии окна надо его сохранить в глобальной переменной - var MyWindow = window.open (); и потом в нужном месте - MyWindow.close ()

соответственно, это окно можно закрыть из любого из его потомков, или из любого другого потомка его предка, а также из любого предка его предка... но эти варианты я рассматривать здесь не буду, ладно?
0
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
05.10.2012, 13:42  [ТС] 3
Спасибо за ответ. Только у меня почему-то окно просто сворачивается. Так должно быть или оно все же должно именно закрываться?
0
Заблокирован
05.10.2012, 16:16 4
нет, должно закрываться
насовсем
бесследно
0
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
05.10.2012, 16:37  [ТС] 5
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
function help(id)
{
    if(id=='open'){
    var MyWindow = window.open("java-href.php", "java-href.php", "toolbar=150,width=500,height=500");
    }
    if(id=='close'){
    MyWindow.close ();
    }
}
</script>
<body>
<a href="javascript:help('open')">Щелкните на ссылке для получения помощи</a><br />
<a href="javascript:help('close')">Закрыть</a>  
 
</body>
Вроде консоль ошибок нечего не пишет. Вроде все правильно
0
Заблокирован
05.10.2012, 16:57 6
izcian, читать не умеете

я вам выше написал (цитирую себя же) -
при открытии окна надо его сохранить в глобальной переменной - var MyWindow = window.open ();
а вы что делаете?
вы для объекта MyWindow прописываете дефиницию var внутри функции и таким образом делаете этот объект локальным, а не глобальным
var для MyWindow надо прописывать ВНЕ функции

в общем, уберите дефиницию var и всё заработает как надо
-----

чтобы стало совсем понятно:
в идеале надо делать так:
Javascript
1
2
3
4
5
6
7
8
9
10
<script>
var MyWindow; // определили как ГЛОБАЛЬНУЮ переменную
 
function ()
{
...
MyWindow = window.open (...); // без var
...
}
</script>
но можно и так:
Javascript
1
2
3
4
5
6
7
8
9
10
<script>
// ничего не определяете
 
function ()
{
...
MyWindow = window.open (...); // пишете без var и она автоматом становится ГЛОБАЛЬНОЙ
...
}
</script>
1
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
05.10.2012, 17:28  [ТС] 7
Notortep спасибо большое. Заработало конечно.
0
Заблокирован
05.10.2012, 17:31 8
и, кстати, добавлю: перед закрытием окна надо проверить - а не закрыто ли оно уже пользователем самостоятельно - ведь пользователь же может САМ нажать на крестик и закрыть окно
тогда возникнет ошибка - попытка обращения к уже несуществующему объекту
-----

у всякого открытого окна есть свойство closed - равно false, если окно ещё открыто, и true - если уже закрыли

в общем, в вашей функции добавьте:
...
if (id == 'close' && !MyWindow.closed) {
MyWindow.close ();
}
1
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
07.10.2012, 10:52  [ТС] 9
Спасибо большое! У меня возникла еще одна мысль, сделать что-то альтернативное. По ссылке через ajax (чтобы не перезагружать страницу) подключать фрейм (правда я сними не работал), через который выводить менеджера изображений через z-index.
0
Заблокирован
07.10.2012, 11:05 10
izcian, насмешили

ajax применяют, чтобы не перезагружалось текущее окно и когда более нет других окон

вы собираетесь подключать фрейм (ифрейм)
а любой фрейм (ифрейм) - это как раз новое окно

отсюда - скрипач ajax не нужен
0
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
07.10.2012, 15:05  [ТС] 11
Цитата Сообщение от Notortep Посмотреть сообщение
izcian, насмешили

ajax применяют, чтобы не перезагружалось текущее окно и когда более нет других окон

вы собираетесь подключать фрейм (ифрейм)
а любой фрейм (ифрейм) - это как раз новое окно

отсюда - скрипач ajax не нужен
Не понял Вас. Есть форма. Человек заполнил поля. Далее, нужно вставить картинку. Кликает, через ajax вызывается в фрейме окно (менеджер изображений), где он может найти картинку, скопировать (название, путь, удалить, переименовать и т.д), закрыть фрейм, вставить в форму картинку (путь) и отправить на сервер. При этом, заполненные поля сохраняются (при работе с картинками). Или фреймы здесь не помошник?

Все это у меня проделывается в настоящий момент через js (имею ввиду отдельно открытое окно). Но он не совсем мне нравится

Р.S. И кстати, все действия в менеджере картинок сделано на ajax, т.е. там все делается в асинхронном режиме.
0
Заблокирован
07.10.2012, 23:54 12
а я не понял вас
зачем здесь нужен ajax?
человек кликает - открывается (становися видимым) ифрейм, в который просто грузится страница с картинками (имеющая свой конкретный URL)
человек ищет и выбирает там картинку, закрывает (делает невидимым) этот ифрейм, вставляет в форму путь к картинке и отправляет форму на сервер

ещё раз спрашиваю - зачем здесь ajax?
для чего вы его прикручивать собираетесь?
-----

вот если бы по клику открывался не ифрейм (фрейм), а какой-то плайн-тег (например, <div>), в который вы хотите записать данные с какого-то серверного файла, то тогда - да, ajax в этом случае можно использовать

но и тут - использовать ajax целесообразно для случая, если по каким-то условиям содержимое этого <div>'а будет разным для разных пользователей (или для разных случаев ввода данных в форму)
а если для любых пользователей во всех случаях вам надо открывать один и тот же набор картинок, то действительно целесообразно для этого использовать именно ифрейм (в котором есть атрибут src, где можно указать адрес неменяющейся странички с картинками) и никакого ajax'a не надо

теперь понятно?
0
2 / 2 / 0
Регистрация: 28.08.2012
Сообщений: 115
09.10.2012, 11:41  [ТС] 13
Notortep а каким способом открывать/закрывать фрейм? Через js display: block?
0
Заблокирован
09.10.2012, 19:29 14
izcian, способов море

например, просто делая ифрейм видимым/невидимым
<iframe id="myIfr"> и document.getElementById ('myIfr').style.display = 'block'; // либо 'none'

или же полностью его удаляя и заново прописывая
<div id="myDiv"> и document.getElementById ('myDiv').innerHTML = '<iframe src="URL"></iframe>'; // либо '' (пустая строка)

итыдыитыпы...
0
09.10.2012, 19:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2012, 19:29
Помогаю со студенческими работами здесь

Избавиться от всплывающего окна
Здравствуйте! Сразу извиняюсь, если это где-то обсуждалось. Как избавить от этого всплывающего...

Контур у всплывающего окна
Коллеги! У меня на всплывающем окне появляется контур. Как его убрать? Не могу понять взаимосвязь....

Отслеживание всплывающего окна
Подскажите как на c# можно отследить появление окна сторонней программы(необходимо для дальнейших...

Закрытие всплывающего окна
&lt;div class=&quot;product&quot;&gt; ................. &lt;div class=&quot;popup&quot;&gt; &lt;a href=&quot;#&quot; class=&quot;close&quot;&gt;&lt;/a&gt; ...

Проверка всплывающего окна
Как мне это сделать? Если всплывающее окно (start explorer) открыто, то ничего не делать. Если оно...

Отображение всплывающего окна
добрый день, товарищи, подскажите, есть ли простой способ отобразить всплывающее окно строго под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru