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

bes 30.07.2012 16:11

Цитата:

Сообщение от logi
Deff, bes, ребята, ну пропишите же в ваши варианты сами то, что нужно, пожалуйста. Чтобы я только скопипастил (а что делать, обучаться придеца после..)). Я же дал вам все коды...

Ну, во-первых, вам тут бесплатно помогают, за вас делать никто не собирается, если хотите готовый скрипт с нуля, вам в раздел Работа, во-вторых, лично я не заметил этих всех кодов.
Из того, что представлено, лично мне не понятно, что там происходит (вы прописываете в исходный документ кнопку, а наверное хотели бы открыть дочернее окно с этой кнопкой, если так то сначала создаёте окно (например, win = window.open()), а потом записываете код этого окна, в том числе и кнопку с обработчиком (win.document.write('код кнопки и т.п') в обработчик этой кнопки и добавляете location.reload(); window.close())
Ну или так как открываете страницу в этом всплывающем окне, то код этой страницы уже может содержать кнопку с обработчиком из location.reload(); window.close(), тогда вообще ничего не нужно

logi 30.07.2012 21:10

Цитата:

Сообщение от bes (Сообщение 192965)
Ну, во-первых, вам тут бесплатно помогают, за вас делать никто не собирается, если хотите готовый скрипт с нуля, вам в раздел Работа, во-вторых, лично я не заметил этих всех кодов.

Да я совсем не против заплатить немного :) но думал, что здесь все значительно проще, и вопрос решается парой строчек кода, которые я просто не смог нагуглить. Собственно, Deff изначально дал отличный рецепт, вот только FF подвел, остальные браузеры на ура!
Из того, что я дал - это скрипт кнопки, который открывает второе окно (загрузка вложений). Что еще нужно было? Ваши элементарные (для вас) вопросы и термины наталкиваются на мое непонимание, поэтому и прошу, если можно, живые примеры скриптов, которые я смогу встроить и посмотреть. Простите, если что не так. :)

bes 30.07.2012 22:12

Цитата:

Сообщение от logi
Из того, что я дал - это скрипт кнопки, который открыват второе окно (загрузка вложений). Что еще нужно было? Ваши элементарные (для вас) вопросы и термины наталкиваются на мое непонимание, поэтому и прошу, если можно, живые примеры.

Я хочу сказать, что нужно подробно описать, что хотите получить в итоге (по тому, что приведено, не понятно, а я не экстрасенс).
Есть окно, в него загружена исходная страница, из неё по нажатию (или может быть как-то по-другому) открывается другое окно, в которое загружается страница со вложением (что за вложение тоже не понятно).
Надо сделать то-то и то-то, то есть ещё раз подробно опишите процесс, а то долго уже тут говорим, толку мало (я так толком и не понял, что нужно, Deff, не знаю, наверное понял :) )

kerk 30.07.2012 23:27

весь процесс, можно посмотреть прямо здесь, на этом форуме
переходим в расширенный режим ответа по кнопке "ответить" или "расширенный режим"
там есть такая кнопка "Управление вложениями"
когда клацаем на нее, открывается другое окно с формой загрузки файлов
после загрузки файла в дочернем окне, в родительском обновляется список загруженных файлов
мой скрипт так же открывает новое окно, но там нет формы загрузки файлов <form>, там пхп скрипт подгружает SWFUploader, который грузит несколько файлов одновременно с отображением статистики загрузки, как то: процент залитого на сервак, прогресс бар и прочие плюшки
так вот, суть в том, что в обычном загрузчике воблы, после загрузки файла, дочернее окно обновляется и в родительском появляется загруженный файл (список)
в моем скрипт дочернее окно нЕ обновляется, и что бы появился список загруженных файлов, я ничего не смог придумать, как поставить костыль из фейк-сабмита формы со списком загруженных файлов
вызов сабмита идет в одном из файлов библиотеки SWFUpload-а - handlers.js
можете глянуть сорс страницы расширенного ответа и страницы загрузки, там есть все, что бы понять как это работает =)

Deff 31.07.2012 01:07

Это похожий Вариант решения ?
<script type="text/javascript">
			<!--
function Klick(c) {
 var b = document.getElementById('wrpFrame').style;
 var a=document.getElementById('form_frame');
 if(c.alt==0){c.alt=1;c.value="Закрыть"
   a.src=a.getAttribute('data');
   b.display='block';
 }else {a.src='';b.display='none';c.value="multiupload";c.alt=0;}
}

document.write('<input type="button" value="multiupload" alt="0" onclick="Klick(this)" />\
<div id="wrpFrame"  style="display:none">\
  <iframe id="form_frame" width=900 height=600 name="form_frame" src="" data="http://uploads.ru/"></iframe>\
</div>');
			//-->
</script>

Deff 31.07.2012 01:12

Пояснения - открываете свою форму загрузки во фрейме - производите нужные действия - закрываете
* можно открыть повторно;

logi 31.07.2012 01:53

Хочу вернуться...

<input type="button" value="Закрыть" onClick="location.reload();window.close();" />

В этом случае окно просто закрывается. Может из-за того, что не успевает сработать первое? А если прописать временной интервал задержки выполнения второй функции..?

Deff 31.07.2012 01:57

logi,
Чем фрейм не понравился ?(В чем сомнения ?
По любому действия с вкладкой упираюца в origin policy

logi 31.07.2012 02:16

Про фрейм kerk скажет, он у нас начальник :)

bes 31.07.2012 11:52

Цитата:

Сообщение от logi
Про фрейм kerk скажет, он у нас начальник

Начальник подключился, а я сначала подумал kerk === logi :) (kerk, видимо как начальник, дал понятное описание того, что происходит. :))

Цитата:

Сообщение от logi
<input type="button" value="Закрыть" onClick="location.reload();window.close();" />
В этом случае окно просто закрывается. Может из-за того, что не успевает сработать первое? А если прописать временной интервал задержки выполнения второй функции..?

Ну почему не успевает, я для этого и ставил alert() и onbeforeunload(), чтобы проверить, работает или нет (хотя..).
Если будете прописывать после открытия дочернего окна document.write, то он просто уничтожит (перепишет) страницу, поэтому страницу лучше поместить во фрейм, кнопку в форму, по нажатию будет submit и перезагрузка.

<button id="but">click</button>
<script>
document.getElementById('but').onclick = function () {
	var win = window.open('index4.htm'); 
	var address = 'http://javascript.ru/';
	var str = '<body onbeforeunload = "return \'закрываемся\'">';
	str += '<iframe width="100%" height="50%" src=' + address + '></iframe>';
	str += '<form параметры><input name="submit" type="submit" value="click"></form>';
	win.document.write(str);
}
</script>


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