Главная » Файлы » Статьи для вебмастера » Статьи для вебмастера

Самый простой способ модификации опций ajax окон ответа на комментарии by Apocalypse для uCoz
24.06.14, 18:50:45



Здравствуйте, уважаемые пользователи проекта apo-ucoz.com! Простые решения непростых проблем - это всегда хорошо, вот и сегодня мне захотелось решить проблему с ответами на комментарии, которая меня откровенно достала. Дело в том, что стандартные опции окон ответов на комментарии зачастую вызывают глюки с открытием формы в них и это приводит к появлению полос прокрутки:



Судя по всему, такая проблема существует из-за того, что не все элементы формы успевают подгружаться, когда окно уже определилось с размером, так как по-умолчанию стоит опция autosize:1

По-умолчанию гет запрос выполняется на страницу /index/58-id_комментария, НО uCoz не дали нам оператор $ID$ в виде материалов комментариев и потому нам придётся использовать костыль. Я решил применить костыль, меняющий опции и размеры открываемого окна при наведении на кнопку "Ответить", чтобы он срабатывал ДО клика. Так как в моём шаблоне комментарии часто вызываются ajax запросом с разных страниц, мне было проще всего напрямую в html коде прописать атрибут onmouseover, чтобы не заморачиваться. Итак, мы просто заменим в шаблоне вида материала
Код
<a href="$ANSWER_URL$">Ответить</a>
На:
Код
<a href="$ANSWER_URL$" onmouseover="$(this).attr('onclick', $(this).attr('onclick').replace('resize:0', 'resize:1,autosize:0,fixed:0,fadetype:2,fadeclosetype:2,hideonmove:0').replace('-550', '700').replace('-100', '350'))">Ответить</a>


Как вы можете увидеть из участка .replace('-550', '700').replace('-100', '350')) - я заменил начальные ширину и высоту окна на те, которые мне нужны сразу, так как отключу автоматическое вычисление размеров

Из участка .replace('resize:0', 'resize:1,autosize:0,fixed:0,fadetype:2,fadeclosetype:2,hideonmove:0') видно, что я разрешил изменять размеры окна, отключил автоматическое вычисление размеров окна, сделал окно статичным, чтобы оно оставалось на месте при прокрутке страницы, изменил тип анимации при открытии и закрытии, а также разрешил отображение контента при перемещении окна. Вы можете менять любые опции. Полный перечень найдёте в ЭТОЙ СТАТЬЕ НА ХЕЛПЕРЕ

Кто-то скажет, что этот способ имеет ряд минусов и можно было методом split вытащить ссылку из onclick атрибута, на что я отвечу - ну нафиг! Для того, чтобы заменить пару опций у окна - усложнять код нет никакого смысла. Вот если бы форму ответа нужно было бы под комментарием, на который отвечаем, вытягивать - другое дело, я бы split использовал, а так, как мне кажется, способ, который я предоставил в этом материале, самый простой и понятный

С вами был Apocalypse, жду ваши отзывы и, если у вас есть ещё более простые решения - с радостью посмотрю на них

Материал подготовлен Apocalypse
Категория: Статьи для вебмастера | Добавил: Apocalypse | Теги: способ, комментарии, на, AJAX, самый, ответа, опций, простой, окон, модификации
Просмотров: 564 | Загрузок: 0 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email: