Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Заморозить функцию до ответа другой (https://javascript.ru/forum/css-html-firefox-mizilla/53388-zamorozit-funkciyu-do-otveta-drugojj.html)

TimohaP 02.02.2015 00:13

Заморозить функцию до ответа другой
 
В этих ваших интернетах искал ответ, но есть ответ только на заморозку на определенное время. Проблема вот в чём, нужно заморозить выполнение подобно alert'у или prompt'у. Только использовать не стандартные функции, а стилизированое свёрстанное красивое окошко (оно у меня есть) , и вот если в нем нажать кнопку, допустим, "подтвердить", то возвращается true, функция разморажывается. и наоборот. Как сделать такое окно, чтобы блокировало (замораживало) исполнение скрипта?

Octane 02.02.2015 00:38

никак
придется освоить асинхронное программирование

TimohaP 02.02.2015 01:00

Да нет же, вы не поняли, нужно НЕ действовать одновременно с другой функцией, а наоборот, продолжить выполнение функции тогда, когда сам юзер не нажмет кнопку ( ну или не нажмет). Те подобно confirm'у

danik.js 02.02.2015 01:23

Цитата:

Сообщение от TimohaP
вы не поняли

:D

TimohaP 03.02.2015 20:05

И что?

Deff 04.02.2015 03:12

TimohaP,
Если функция , подлежашая "заморозке" имеет некую цикличность, периодически, в куске цикла проверять наличие этого окна (или специальной переменной, генерируемой при всплытии окна) если окно существует, замороженная функция циклиться на тестировании этой переменной или нажатия кнопки)
По хорошему эту "Замораживаемую" функцию нужно реализовывать изначально цикличность исполнения через setInterval , либо запихнуть во фрейм(пусть тестирует окно из фрейма), тем самым изобразив некую асинхронность. В противном случае могут возникать проблемы в некоторых браузерах с самим нажатием кнопки завершения всплывающего окна.
Хотя, если тест нажатия кнопки в самом окне сделать через setInterval , то предыдущие замечания не актуальны

nerv_ 04.02.2015 23:38

Цитата:

Сообщение от TimohaP
Заморозить функцию до ответа другой

<iframe width="640" height="360" src="https://www.youtube.com/embed/EN5c59bQayw" frameborder="0" allowfullscreen></iframe>

:)


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