Как сделать профили в аякс (юВинд) окне?
|
|
[1] Гость [26.03.2011, 16:07] |
Как сделать профили в аякс (юВинд) окне? Есть ссылка такого плана http://forucoz.com/openLayerA.js но окно открывается не плавно как остальные ювинд и работает только для отдельных ссылок, а хотелось бы, что бы все профили открывались в ювинд. Можно это как-то сделать? Спасибо. |
|
[2] likbezz [01.08.2011, 04:12] |
Quote (Гость) Как сделать профили в аякс (юВинд) окне? Дословно цитирую, да простит меня автор: G-XPert Пост от 02 Января 2010, 09:36 | Сообщение # 1
Quote (G-XPert) Расскажу как сделать такие-же окна как тут. Казалось бы создать аякс окно просто, new _uWnd и все дела, НО если нам например нужно сделать чтобы профиль пользователя, ссылка на который стоит в коде $BODY$ открывался в аякс окне?
1. Разберем на примере страницы со списком пользователя.
1. Первое что мы делаем $BODY$ заменяем на: <div class="ajax">$BODY$</div> 2. Дальше перед кодом </body> или после $BODY$ ставим следующий скрипт:
Code <script type="text/javascript">$('.ajax a').bind('click',function(){new _uWnd('ajax','Загрузка...',800,350,{closeonesc:1,autosize:1,autosizeonimages:1},{xml:false,dataType:'html',url:this.href});$.get(this.href,{},function(data){if(data.search(/<title>(.+)<\/title>/i)) _uWnd.getbyname('ajax').setTitle(RegExp.$1);});return false;}) </script>
Quote (G-XPert) Теперь окна стоящие внутри кода $BODY$ будут открываться в аякс окне, как тут.
2. Теперь разберём на примере, когда нам нужно сделать чтобы не все ссылки стоящие в коде $BODY$ открывались в аякс окне:
1. Разберём на примере форума, допустим, в колонке "Обновления", где "Сообщение от: $USERNAME$" нам нужно сделать чтобы профиль открывался в аякс окне. Смотрим исходный код и видим что ссылка имеет класс lastPostUserLink. 2. Теперь, когда мы узнали класс, также перед кодом </body> или после $BODY$ ставим следующее:
Quote (JS) <script type="text/javascript">$('.lastPostUserLink').bind('click',function(){new _uWnd('ajax','Загрузка...',800,350,{closeonesc:1,autosize:1,autosizeonimages:1},{xml:false,dataType:'html',url:this.href});$.get(this.href,{},function(data){if(data.search(/<title>(.+)<\/title>/i)) _uWnd.getbyname('ajax').setTitle(RegExp.$1);});return false;}) </script> Где: lastPostUserLink - класс ссылки, что будем обрабатывать скриптом. Возможен множественный вариант, типа: $('.lastPostUserLink,.newPostUserLink'). .... bind('click',function(){} - действие (функция) при клике. new _uWnd('') - создаём аякс окно. f(data.search(/<title>(.+)<\/title>/i)) _uWnd.getbyname('ajax').setTitle(RegExp.$1);} - заменяем титле в аякс окне на подгружаемый. return false; - отменяем действие по умолчанию.
Имно - не самый полезный и грамотный скрипт. Но с заменой титле придумано оригинально .... ) Респект автору.
Сообщение отредактировал likbezz - Понедельник, 01.08.2011, 04:12 |
|
[3] Fiddle [19.05.2014, 03:16] |
Доброго времени суток, прошу прощения, что не создал отдельную тему ( нет прав) и лезу в чужую, но по сути вопрос схожий. Суть моего вопроса: Как сделать, чтобы все профили внутри $BODY$, а так же внешние от этого оператора( рукописные) ссылки на профили пользователей открывались не в uwnd окне, а появлялся блок с абсолютном позиционированием, скажем, в верхнем правом углу сайта? Выражаясь технически, мне нужна функция, которая вызывает появление скрытого блока содержимое которого фрейм, а именно, непосредственно фрейм со страницы профиля пользователя, который вас интересует. Проще говоря, нужно заменить появление в ajax на появление обычного блока. Заранее благодарю всех, кто попытается помочь! |
|
[4] likbezz [19.05.2014, 06:08] |
Fiddle, Выражаясь технически, мне нужна функция, которая вызывает появление скрытого блока содержимое которого фрейм, а именно, непосредственно фрейм со страницы профиля пользователя, который вас интересует. Сделать-то несложно.. Типа: ☑ http://likbezz.ru/_example/_rest/_2014/p1/profile_frame.html Код <!--Start()--> <style type="text/css"> #frameBox{ width:500px; height:300px; position:absolute; right:0; top:0; } .framePro{ width:100%; height:100%; } </style> <script type="text/javascript"> function frameBox(id){ $('body').append('<div id="frameBox"><iframe src="http://likbezz.ru/index/8-'+id+'" class="framePro"></iframe></div>'); } </script> <a href="javascript://" onclick="frameBox('1466');return false;">Fiddle</a> <!--//End()--> Но тут технический вопрос: как вы его собираетесь закрывать?
Проще говоря, нужно заменить появление в ajax на появление обычного блока. Тут уже уточняющий вопрос: для чего это? |
|
[5] Fiddle [19.05.2014, 23:45] |
likbezz, благодарю за отзывчивость! Цитата likbezz Сделать-то несложно.. Типа: ☑ http://likbezz.ru/_example/_rest/_2014/p1/profile_frame.html Идеально, то что нужно!
Цитата likbezz Но тут технический вопрос: как вы его собираетесь закрывать?
Если вам не сочтет труда, прикрутите по ссылке в области этого самого блока, либо по клику вне области. Я бы сделал сам, но ,к сожалению, я js плоховат, поэтому вот клянчу помощи у более знающих людей в этом вопросе)
Цитата likbezz Тут уже уточняющий вопрос: для чего это?
Издержки дизайна) |
|
[6] likbezz [05.06.2014, 23:50] |
Если вам не сочтет труда, прикрутите по ссылке в области этого самого блока, либо по клику вне области. Я бы сделал сам, но ,к сожалению, я js плоховат, поэтому вот клянчу помощи у более знающих людей в этом вопросе) Типа так: ☑ http://likbezz.ru/_example/_rest/_2014/p1/profile_frame2.html |
|
[7] Fiddle [23.07.2014, 04:52] |
likbezz, огромное вам человеческое спасибо! Только вот, единственная проблема, как сделать, чтобы абсолютно все профили на сайте открывались в данном блоке, а не по ссылке =(
Сообщение отредактировал Fiddle - Среда, 23.07.2014, 05:15 |
|
[8] likbezz [29.07.2014, 10:17] |
Fiddle, Только вот, единственная проблема, как сделать, чтобы абсолютно все профили на сайте открывались в данном блоке, а не по ссылке =( Найти все ссылки на профиль (скриптом) и прописать им данную функцию. Найти можно перебором, по фрагменту «index/8-» ... ну а функцию повесить как обычно - $.click |
|
[9] Fiddle [29.07.2014, 12:59] |
likbezz, как то так ? Не подскажите более верный вариант, пожалуйста .
Код $('a[href*="/index/8-"]').click(function(){ $('body').append('<div id="frameBox"><iframe onload="frameBoxHide();" src="http://likbezz.ru/index/8-'+id+'" class="framePro"></iframe></div>'); } function frameBoxHide(){ $('html').click(function(){ $('#frameBox').remove(); $(this).unbind('click'); }); }
Я полагаю нужно заменить как - то : Код src="http://likbezz.ru/index/8-'+id+'"
Сообщение отредактировал Fiddle - Вторник, 29.07.2014, 13:00 |
|
[10] likbezz [30.07.2014, 08:16] |
Fiddle, Ну да, как-то так..
Код $(document).ready(function(){ $('a[href*="/index/8-"]').click(function(){ $('#frameBox').remove(); $('body').append('<div id="frameBox"><iframe onload="frameBoxHide();" src="http://likbezz.ru/index/8-'+this.href.split('-')[1]+'" class="framePro"></iframe></div>'); return false; }); }); function frameBoxHide(){ $('html').click(function(){ $('#frameBox').remove(); $(this).unbind('click'); }); }
☑ http://likbezz.ru/_example/_rest/_2014/p1/profile_frame3.html |
|
[11] Fiddle [31.07.2014, 00:09] |
likbezz, благодарю |
|