akxxiv
Новичок
Эмуляция модальных окон
В ИЕ, со всеми его глюками и тд., есть одна замечательная штука - модальные окна. Ну, очень удобны они в приложениях с ограниченным количеством пользователей, таких как CMS и интранет приложениях. Но вот к сожалению встала необходимость поддержки других браузеров (FF и Опера).
Для FF, на сколько я слышал можно конечно написать расширение на XUL. Но это выход только для FF.
Значит надо писать на JS. Знаю, что написано уже много разных вариантов эмуляций, в частности в рамках различных фрэймворков. Но все равно не то.
Что мне нравится в ИЕ-шных модальных окнах, и что хотелось бы реализовать.
1. ИЕ-шное МО можно рассматривать как функцию, которая принемает параметры и отдает готовый результат. Внутри же МО может происходить что угодно, от заполнения форм до AJAX-обращений к серверу.... Но в результате вернется нужное значение. Т.е.
Но это на JS врят ли получится, поэтому скорее всего придется извращаться с коллбэк функциями что-то типа такого
2. Хотелось бы изолировать все что происходит в JS-МО от родительского окна. Т.е. чтобы все что происходило в модальном окне, происходило в рамках объекта модального окна. Не знаю на сколько это реализуемо.
3. ИЕ-шное МО кэширует страницу. Т.е. если открыть еще раз то же МО оно откроется мгновенно. чего хотелось бы добиться и от эмуляции.
4. Хотельсь бы чтобы JS-МО само подтягивало необходимые для его работы скрипты и стили.
Вроде пока все что в голову пришло. Может кто-нибудь уже делал нечто подобное и поможет советом...
В ИЕ, со всеми его глюками и тд., есть одна замечательная штука - модальные окна. Ну, очень удобны они в приложениях с ограниченным количеством пользователей, таких как CMS и интранет приложениях. Но вот к сожалению встала необходимость поддержки других браузеров (FF и Опера).
Для FF, на сколько я слышал можно конечно написать расширение на XUL. Но это выход только для FF.
Значит надо писать на JS. Знаю, что написано уже много разных вариантов эмуляций, в частности в рамках различных фрэймворков. Но все равно не то.
Что мне нравится в ИЕ-шных модальных окнах, и что хотелось бы реализовать.
1. ИЕ-шное МО можно рассматривать как функцию, которая принемает параметры и отдает готовый результат. Внутри же МО может происходить что угодно, от заполнения форм до AJAX-обращений к серверу.... Но в результате вернется нужное значение. Т.е.
PHP:
var params = {параметры};
var res = openModal(url, params) // это надстройка над showModalDialog для удобства
if (res).....
PHP:
openModal(url, params, function(){/* действие по завершению */})
3. ИЕ-шное МО кэширует страницу. Т.е. если открыть еще раз то же МО оно откроется мгновенно. чего хотелось бы добиться и от эмуляции.
4. Хотельсь бы чтобы JS-МО само подтягивало необходимые для его работы скрипты и стили.
Вроде пока все что в голову пришло. Может кто-нибудь уже делал нечто подобное и поможет советом...