<?CUtil::InitJSCore( array('ajax' , 'popup' ));?>
BX.ready(function(){ var addAnswer = new BX.PopupWindow("my_answer", null, { content: BX('ajax-add-answer'), closeIcon: {right: "20px", top: "10px"}, titleBar: {content: BX.create("span", {html: 'Обратная связь', 'props': {'className': 'access-title-bar'}})}, zIndex: 0, offsetLeft: 0, offsetTop: 0, draggable: {restrict: false}, buttons: [ new BX.PopupWindowButton({ text: "Отправить", className: "popup-window-button-accept", events: {click: function(){ BX.ajax.submit(BX("myForm"), function(data){ // отправка данных из формы с id="myForm" в файл из action="..." BX( 'ajax-add-answer').innerHTML = data; }); }} }), new BX.PopupWindowButton({ text: "Закрыть", className: "webform-button-link-cancel", events: {click: function(){ this.popupWindow.close(); // закрытие окна }} }) ] }); $('#click_test').click(function(){ BX.ajax.insertToNode('/include/testform.php', BX('ajax-add-answer')); // функция ajax-загрузки контента из урла в #div addAnswer.show(); // появление окна }); });
<a id="click_test" href="javascript:void(0)" >Клик</a>
Пример ссылки для открытия окна
my_answer — строка - уникальный id DOM-элемента, в который будет обернуто окно. Еcли на странице будет 2 и больше окон такого плана, то у каждого должен быть свой id.
null — параметр «принадлежности окна» к какому-либо DOM-элементу на странице. Т.е. по дефолту окно всплывает в центре страницы. Хотите чтоб всплывало, на пример, рядом с какой-либо кнопкой, ставьте суда id элемента в виде $(‘#my_name_div’) или через битриксовый эквивалент BX (‘my_name_div’)
content — строка - здесь контент, который будет показан в окне. Можно прямо сюда указывать html или указать #div, в котором лежит нужный текст..
closeIcon: {right: "20px", top: "10px" } — показывает нужна ли вам иконка закрытия окна и ее положение в окне.
titleBar: {content: BX .create("span", {html: ‘Это заголовок окна’, 'props': {'className': 'access-title-bar'}})} — это создание заголовка окна. BX .create - функция создания DOM-элемента. В данном случае создание
. Если хотите чтоб ваше окно можно было перетаскивать по странице, то класс лучше не менять.zIndex: 0, offsetLeft: 0, offsetTop: 0, draggable: {restrict: false} — эти параметры указывают, что окно можно передвигать по странице.
buttons — кнопки для управления содержимым окна. На каждую кнопку создаем новый объект new BX .PopupWindowButton с параметрами:
text — ‘название кнопки’
className — класс на кнопке, из стандартных возможны варианты: popup-window-button-accept - зеленая кнопка, popup-window-button-cancel - белая кнопка, popup-window-button-link-cancel - просто ссылка. Само-собой можно приклеить свой стиль.
events: {click: function(){ this.popupWindow .close(); }}
Это параметр, отвечающий за действие, произошедшее при нажатии кнопки. В данном случае this.popupWindow .close(); - говорит о закрытии окна. Но тут возможны различные варианты в зависимости от фантазии и задач.