Это мощный конструктор модальных окон, построенный на проприетарной библиотеке uCoz (базируется на старых наработках jQuery UI, но сильно модифицирована).
Основной синтаксис: `new _uWnd(name, title, width, height, options, content, menu)`;
Ниже приведен полный разбор аргументов и доступных методов.
### 1. Основные аргументы
- | Аргумент | Тип | Описание |
| --- | --- | --- |
- | **name** | String | Уникальный ID окна. Если открыть окно с тем же именем, старое закроется или обновится. |
- | **title** | String | Заголовок окна (поддерживает HTML). |
- | **content** | String/Obj | Содержимое окна или объект для AJAX-загрузки. |
- | **width** | Int | Ширина в пикселях. |
- | **height** | Int | Высота в пикселях. |
- | **options** | Object | Объект с настройками (см. ниже). |
- | **menu** | Object | Опциональное меню (кнопки в нижней или верхней части). |
### 2. Ключевые параметры (Options)
Эти настройки передаются в пятом аргументе `{...}`:
- * **`autosize: 1`** — автоматическая подстройка высоты под контент.
- * **`modal: 1`** — делает окно модальным (блокирует фон).
- * **`min: 1`, `max: 1**` — добавляет кнопки сворачивания и разворачивания.
- * **`canclose: 1`** — можно ли закрыть окно (по умолчанию 1).
- * **`resizable: 1`** — позволяет менять размер окна мышкой.
- * **`align: 'left' / 'right' / 'center'`** — выравнивание.
- * **`shadow: 1`** — отображение тени.
- * **`header: 1 / 0`** — показывать или скрыть шапку окна.
- * **`onclose: function() {...}`** — функция, которая сработает при закрытии.
### 3. Специальные методы (Статические функции)
Вместо создания `new _uWnd`, можно управлять уже открытыми окнами через объект `_uWnd`:
- * **`_uWnd.close('name')`** — закрыть окно с конкретным именем.
- * **`_uWnd.getByName('name')`** — получить объект окна для манипуляций.
- * **`_uWnd.alert('Текст', 'Заголовок', {options})`** — быстрый вызов стандартного уведомления.
- * **`_uWnd.confirm('Вопрос?', 'Заголовок', function(ok){...})`** — окно подтверждения.
### 4. Работа с AJAX (Загрузка контента)
Если вы хотите загрузить в окно страницу сайта, в аргумент `content` передается объект:
- new _uWnd('myAjaxWindow', 'Загрузка...', 300, 150, {autosize:1}, {url:'/index/8-1'});
- * **`url`**: адрес страницы.
- * **`type`**: 'POST' или 'GET'.
- * **`xml`**: если нужно парсить XML-ответ.
### 5. Пример продвинутого окна с кнопками
Вот как собрать функциональное окно:
Код
new _uWnd('testWin', 'Настройки профиля', 400, 250, {
autosize: 1,
modal: 1,
fixed: 1, // Окно не скроллится вместе со страницей
nomove: 0 // Можно ли перетаскивать
},
'<div class="my-content">Вы уверены, что хотите сохранить изменения?</div>',
{
footer: {
buttons: {
'save': function() { alert('Сохранено!'); _uWnd.close('testWin'); },
'cancel': function() { _uWnd.close('testWin'); }
}
}
});
autosize: 1,
modal: 1,
fixed: 1, // Окно не скроллится вместе со страницей
nomove: 0 // Можно ли перетаскивать
},
'<div class="my-content">Вы уверены, что хотите сохранить изменения?</div>',
{
footer: {
buttons: {
'save': function() { alert('Сохранено!'); _uWnd.close('testWin'); },
'cancel': function() { _uWnd.close('testWin'); }
}
}
});
### Главный совет по отладке в uCoz
Поскольку документация uCoz часто бывает неполной, вы можете в консоли браузера (F12) ввести `console.log(_uWnd)`, чтобы увидеть все доступные встроенные свойства и методы прототипа в текущей версии вашей библиотеки.