Автор Тема: window.open() вместо showModalDialog()  (Прочитано 3145 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
window.open() вместо showModalDialog()
« : 23 Июля 2003, 12:01:53 »
Задача - создание диалогового окна, максимально схожего с создаваемым методом showModalDialog() в IE, но на JS, без использования специфичных для IE свойств, методов и событий.

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

Заранее спасибо за помощь.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
window.open() вместо showModalDialog()
« Ответ #1 : 31 Июля 2003, 21:02:26 »
Так-с. Ну тогда хоть подскажите, как лучше возвращать переменную/массив из окна, открытого методом window.open()?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
window.open() вместо showModalDialog()
« Ответ #2 : 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
определенное значение (это так теория)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
window.open() вместо showModalDialog()
« Ответ #3 : 01 Августа 2003, 19:21:09 »
Макс
Вариант интересный. Спасибо.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28