Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: dub от 23 Июля 2003, 12:01:53

Название: window.open() вместо showModalDialog()
Отправлено: dub от 23 Июля 2003, 12:01:53
Задача - создание диалогового окна, максимально схожего с создаваемым методом showModalDialog() в IE, но на JS, без использования специфичных для IE свойств, методов и событий.

Задача разбивается на следующие:
1) открытие окна с кодом страницы диалога
2) обеспечение неизммености фокуса на этом окне
3) исключение выбора текста в этом окне (средствами, отличными от onSelectStart)
4) исключение вызова контекстного меню при нажатии правой клавиши мыши (средствами, отличными от onContextMenu)
5) присвоение значения возвращаемой переменной/массиву в скрипте страницы диалога
6) закрытие окна и возвращение этой переменной/массива функции, открывшей окно

Заранее спасибо за помощь.
Название: window.open() вместо showModalDialog()
Отправлено: dub от 31 Июля 2003, 21:02:26
Так-с. Ну тогда хоть подскажите, как лучше возвращать переменную/массив из окна, открытого методом window.open()?
Название: window.open() вместо showModalDialog()
Отправлено: Макс от 01 Августа 2003, 03:04:34
Есть у модальных окон одна особенность:

a = b+c;
mod_window = window.showModalDialog(.....);
alert(mod_window);

Так вот, когда выполнение кода дойдет до строки
mod_window = window.showModalDialog(.....);
появится окно и код перестанет выполняться, пока окно не будет закрыто. Как только окно закроют - оно вернет значение и код будет выполняться дальше. Честно говоря я не знаю как сделать такую остановку кода без использования модальных окон.

Если для тебя этот факт не принципиален то возвращать можно как тебе удобно. Например на кнопку закрытия окна повесить обработчик события, который по клику передаст в
opener.document.hidden_form.hidden_field.value
определенное значение (это так теория)
Название: window.open() вместо showModalDialog()
Отправлено: dub от 01 Августа 2003, 19:21:09
Макс
Вариант интересный. Спасибо.