Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Перезагрузить и закрыть (https://javascript.ru/forum/misc/30270-perezagruzit-i-zakryt.html)

logi 30.07.2012 12:20

[quote=Deff] http://hostjs-my
Цитата:

Сообщение от Deff
logi,
У меня в Опере работает Пример - http://hostjs-mybb2011.narod.ru/faiko2.htm

Deff, виноват, видимо, ошибся при копировании вашего скрипта. Спасибо огромное! Работает шикарно в Опере и Хроме. В ФФ, как писал lord2kim, не закрывает окно и даже не предлагает - нужно что-то придумать... В IE у меня пока не работает сам продукт, которому это фишка предназначается, поэтому проверить пока не могу.
Еще для информации. Закрываемое окно является дочерним, открытым скриптом из родительского. Закрытие дочернего с перезагрузкой родительского - этого сколько хочешь, а этот случай вынудил обратиться к вам.

bes 30.07.2012 12:26

Цитата:

Сообщение от logi
В ФФ, как писал lord2kim, не закрывает окно и даже не предлагает - нужно что-то придумать..

предлагаю вынудить разработчиков FF это отменить :)
Цитата:

Сообщение от logi
Еще для информации. Закрываемое окно является дочерним, открытым скриптом из родительского. Закрытие дочернего с перезагрузкой родительского - этого сколько хочешь, а этот случай вынудил обратиться к вам.

Цитата:

Сообщение от logi
В IE пока не работает сам продукт, которому это фишка предназначается, поэтому проверить пока не могу.

Так что за фишка?

bes 30.07.2012 13:08

<body onbeforeunload="return 'закрыть это окно'">
<button>click</button>

<script>
document.body.children[0].onclick = function () {
	var win = window.open();
	var str = '<body onbeforeunload = "return \'закрыться этом вслпывающему окну?\'">';
	str += '<button onclick="location.reload();alert(\'закрываемся\'); window.close();">reload & close</button>';
	win.document.write(str);
}
</script>

logi 30.07.2012 13:16

Цитата:

Сообщение от bes
Можно поинтересоваться, зачем это нужно?

Есть хак мультизагрузки вложений для форума на vBulletin. После загрузки вложений в дочернем окне срабатывает фейк-сабмит перезагрузки, который отдает отображение загруженных файлов в открытый редактор сообщения (родительское окно). Все бы ничего, но применение этого "костыля" лишило нескольких важных функций. Поэтому и потребовалось убрать костыль, а функцию фейк-сабмита подвесить на кнопку закрытия окна.
Собственно, вот тема и начало обсуждения этого с автором хака: http://vbsupport.org/forum/showthrea...699#post396699

Deff 30.07.2012 13:22

logi,
делайте сабмит с отправкой ответа в скрытый фрейм - и будет щастье

http://htmlbook.ru/html/form (см target

logi 30.07.2012 13:47

Цитата:

Сообщение от Deff
logi,
делайте сабмит с отправкой ответа в скрытый фрейм - и будет щастье

http://htmlbook.ru/html/form (см target

Deff, Если не сложно, можно пример для моего случая? Мне очень долго разбираться, измучился уже весь ((

Deff 30.07.2012 13:52

logi,
Собственно ничего сложного в отправляемой форме - прописываете изначально target
<form target="имя окна">...</form>
Где "имя окна" - имя пустого- скрытого заготовленного фрейма

Пример:
<div style="display:none">
 <iframe name="myifarame" width="0" height="0">
</div>

<form ... target="myifarame">...</form>


Результаты отправки формы будут возвращены во фрейм

logi 30.07.2012 14:14

Не понимаю (( Каким должно быть имя окна? Куда здесь кнопочку закрытия прописать..?

Deff 30.07.2012 14:24

logi,
Ну смотрите на демо
в таргет формы - прописано имя скрытого фрейма => myifarame

Deff 30.07.2012 14:25

Цитата:

Сообщение от logi
Не понимаю (( Каким должно быть имя окна? Куда здесь кнопочку закрытия прописать..?

открывацо ничо не будет - поэтому и закрывать ничо не надо - можно по onload фрейма - просто удалить его со страницы (*если есть обоснованные причины - что оно Вам мешает


Часовой пояс GMT +3, время: 08:25.