VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Здравствуйте!
Я в Javascript очень слаб, по этому прошу помощи.
Хочу сделать навигацию по страницам на AJAX (для уменьшения трафика, и чтобы страницы быстрее грузились), почти сделал НО возникла проблема. Если перейти с помощью AJAX'а на другую страницу, то перестают работать остальные AJAX'овские функции на страницы: редактирование постов, репутация, кнопка быстрого ответа и т.п.
Тестовый хак выложил в аттаче.
Вот JS файл, который я написал:
PHP Code:
// отображение прогресс бара var progresstext = '' + vbphrase['loading_page'] + ' <img src="images/misc/11x11progress.gif">';
// функция загрузки навигации по страницам (pagenav) function loadpagenav(page, thread) { // отправка запроса var sUrl = thread; var postData = 'securitytoken=' + SECURITYTOKEN + '&type=gmab_loadnav&page=' + page; var handleSuccess = function(o) { if(o.responseText !== undefined) { // эмулируем getElementByID и используем элементы fetch_object('ajaxpagenav_1').innerHTML = o.responseText; fetch_object('ajaxpagenav_2').innerHTML = o.responseText;
// инитилизируем функции vBulletin vBulletin_init(); } } // а если ошибка, то... var handleFailure = function(o) { if(o.responseText !== undefined) { alert(o.responseText); } } var callback = { success: handleSuccess, failure: handleFailure, timeout: vB_Default_Timeout }; // коннект YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData); }
// функция перехода к странице function gmab_gotopage(page, thread) {
// эмулируем getElementByID и используем элементы fetch_object('ajaxpagenav_loading_1').innerHTML = progresstext; fetch_object('ajaxpagenav_loading_2').innerHTML = progresstext;
// отправка запроса var sUrl = thread; var postData = 'securitytoken=' + SECURITYTOKEN + '&type=gmab_loadpage&page=' + page;
// загружаем функцию навигации по страницам loadpagenav(page, thread);
var handleSuccess = function(o) { if(o.responseText !== undefined) { // эмулируем getElementByID и используем элементы fetch_object('posts').innerHTML = o.responseText;
// эмулируем getElementByID и используем элементы fetch_object('ajaxpagenav_loading_1').innerHTML = ''; fetch_object('ajaxpagenav_loading_2').innerHTML = '';
// функция получения значения #page=XXX function gmab_fetch_page() { // получаем информацию из адресной строки var THIS_PAGE = document.location.hash.substr(document.location.hash.lastIndexOf('#page=') + 6);
// если page = '', то отменяем переход if(THIS_PAGE != "") { return THIS_PAGE; }else{ return false; }
// инитилизируем функции vBulletin vBulletin_init(); }
/*******************************************************/
Тут был мой совет.
/*******************************************************/
Правка: Упс)))) Типик-стартер Решение уже нашел.
немогу решить две проблемы:
1. не работает репутация
2. не работает всплывающее DHTML меню при клике на ник
@Yoskaldyr
Специалист
Join Date: Jan 2007
Posts: 543
Версия vB: 4.0.x
Reputation:
Professional 556
Репутация в разделе: 166
3
GiveMeABreak, Проблема в том что инициализация меню задается в коде постбита, а не в конце страницы, надо пройтись по всему DOM-дереву div-а с id=posts, найти все меню и запустить vbmenu_register.
Я знаю как на чистом js это сделать, но код будет громадный и не красивый, знаю как на jquery код в пару строк, но нафиг если есть Yui, поэтому просьба к тем кто разбирается в yui подсказать как можно сделать поиск элементов по id по определенной маске.
лично я считаю данный хак не настолько необходимый, т.к. все равно в данном случае (хоть и ajax) инициализируется 90% того же что и при обычной навигации по страницам, но с точки зрения красоты и оригинальности форума - да, очень неплохо. К тому же будет набор готовых наработок для работы с ajax-ом