При використанні бібліотеки FullAjax можна зіткнутись з тим, що інші скрипти (наприклад LightBox) відмовляються працювати, або працюють не коректно. Причина з якої вони відмовляються працювати дуже проста – вони не зовсім розраховані на сумісну роботу з AJAX.
Як це можна поправити, опишу в декількох рядках нижче…
Основна причина (але не єдина) по якій деякі скрипти відмовляються працювати сумісно з AJAX – це те, що вони не “бачать” коли AJAX сторінка завантажена та готова до “використання”. Щоб це поправити потрібно самостійно їм вказувати, що сторінка “готова”.
Для цього, після завантаження AJAX сторінки потрібно повідомити скриптам, що сторінку оновлено.
Щоб визначити коли сторінка готова, можна скористатись подією “load” бібліотеки FullAJAX (приклад для Mootools fireEvent()):
FLAX.Html.onall('load', function(options){ window.fireEvent('domready'); }); |
або функцією зворотного виклику:
function doSomethingAfterFAjxPagLoad (){ window.fireEvent('domready'); }; |
Щоб ця функція спрацювала після завантаження AJAX сторінки, в базові налаштування бібліотеки FullAjax потрібно додати параметр onload:doSomethingAfterFAjxPagLoad .
Приклад :
FLAX.Filter.add({url:'/', id:fullAjaxId, onload:doSomethingAfterFAjxPagLoad}); ... function doSomethingAfterFAjxPagLoad (){ /* fix for mootools 'domready', uncomment if need*/ /* window.fireEvent('domready'); */ }; |
При використанні window.fireEvent(‘domready’); потрібно бути обережним.
По перше це допомагає лише якщо скрипт дійсно не “бачить”, що сторінка “готова”.
По друге, при сумісному використанні з іншими скриптами які нормально працюють з AJAX – це може призвести, до додаткових не бажаних помилок, таких як подвійне виконання цього скрипта. Тому в плагіні ця функція за замовчуванням закоментована.
В деяких випадках потрібно використовувати window.fireEvent(‘load’); – все залежить від самого скрипта який “відмовляється” працювати.
Взагалі, якщо “неробочий” (наприклад LightBox) скрипт потрібен лише на певній сторінці, то вище вказану функцію краще виконувати саме на цій сторінці, а не на кожній. Це попередить виникнення додаткових помилок.
Приклад для сторінки “Галерея” ( mysite.com/galery ):
if(location.toString().indexOf('/galery') != -1){ window.fireEvent('domready'); } |
Далі буде, можливо… :)

Hi,
and thanks for that great plugin.
Unfortunately i cant get it to work with Simple Image Gallery. The milkbox/Lightbox doesnt open anymore. Already tried hints from above on this page. But it wont do.
Thanks for your help,
Thomas
these hints for mootools based scripts … for jQuery and others should be also something :)
you need find how works gallery initialisation, and add the initialisation code in to a “doSomethingAfterFAjxPagLoad” function:
First of all thank you for this great plugin.
My problem appears when I turn on in the joomla search engine friendly URLs.
I get the error 303 See Other.
How can I get a complete component, in this case JoomGallery exclude?
I hope to find help here.
Greetings from Germany
sorry I not very understand you problem … a full site not work after turn on SEF, or not works some pages?
Thanks so much. I had to add
milkbox = new Milkbox({ centered:true });in “doSomethingAfterFAjxPagLoad”as well as loading milkbox.js manually (not by gallery plugin).
It finally works. great job! Thanks Fedik!!!
Hi Fedik, it is not your great plugin.
This is a problem of the JoomGallery. Once the Joomla SEF is activated from the galley returns error 303. That seems to come from the router.php. If I do not get the point I’m going to use one other gallery. All other works fine. The only problem that remains for me, I get the slimbox not to run and have always in the URL: # ajx / How can I remove it?
I have all tested here described, unfortunately without success.
In any case thank you for your help and your great plugin.
Hier is a link to see it in action : http://wgf.stahlsite.de/
It is only a testpage, but should go online soon on a other URL. SEF is activated for the time.
The Joomla Version 1.5.23 an the the JoomGallery is Version 1.5.7.4
greets André
no, you cannot remove #ajx .. ‘#’ – need for fullajax works, but you can change text, in the plugin configuration find next
and change ‘ajx’.
Hi Fedik! Many thanks for this awsome plugin :)
I’ve got one problem with Simple Image Gallery plugin with FullAjax plugin enabled. If in article is gallery I can’t get into full text from blog view. Popup engine I’m using is Slimbox(mootols) also I have default Joomla simple URL’s running on my site and in plugin configuration enabled this piece of code:
function doSomethingAfterFAjxPagLoad (){window.fireEvent('domready');
};
Please help. I’m not very familiar with ajax :(
hi!
Please look at this comment comment-634
hope it will help ;)
Пытаюсь настроить FullAjax с LightBox.
Вписал в настройки
FLAX.Filter.add({url:’/’, id:fullAjaxId, onload:doSomethingAfterFAjxPagLoad});
…..
function doSomethingAfterFAjxPagLoad () {
window.fireEvent(‘domready’);
};
(Вернее оно уже было вписано, я просто раскомментировал)
И оно никак не хочет работать. Может я что неправильно вписал. или надо в index.php шаблона что-то вписать.
вписываю FLAX.Filter.add({url:’/folder-myimgs/’, type:’nowrap’}) картинка открывается прямо в окне без LightBox.
Очень понравилась ваша библиотека. Хотелось бы использовать
Помогите, пожалуйста!
Який плагін для LightBox використовуєте?
пс. Бібліотека насправді не моя, я лише зробив плагін ;)
JoomShopping, там стандартный LightBox, версия Joomla – 2.5
canauto_точка_com.ua можно глянуть
для jquery.lightbox-0.5.pack можна спробувати ще так:
додайте папку з зображеннями у фільтр :
а потім:
Попробовал установить FancyBox – то же самое.
Зато заметил, если загрузить страницу первый раз – все хорошо работает, после навигации по страницам перестает
чесно кажучи навіть не знаю, що порадити, для FancyBox можна спробувати додати jQuery.fancybox.init();
а initJSlightBox(); викликає лише помилку, так як функції не знайдено
Поковыряв это дело, нашел решение. Оказывается Ваш плагин не подгружает javascript файлы. Подключив библиотеки jquery и fancybox в хедер шаблона (так чтобы они подгружались на всех страницах) и убрав оттуда, где им место, все начало отлично работать. Но я так понимаю, что это некорректный выход из ситуации. Можно ли будет этого избежать в следующей версии плагина?
FullAjax завантажує скрипт лише один раз та кешує його, далі використовується кеш…
Проблема в тому, що кожне розширення галереї чи іншої подібної біди, має власну ініціалізацію – це просто не реально передбачити/відгадати/зробити універсальним.
Єдиний шанс, це якщо в Joomla приймуть “standart for JavaScript initialisation in Joomla!”
Hi. Great plugin. But I have some problems with vertical menu, I edit template index.php, after that it gets work. Only menu have some problems, pleease look.
‘Auto check’ for you menu not work because you have not default menu code, there need own script for it. If you know JavaScript try add class “active” by “click” event
Hello
Great extension – thank you!
I will to use fullajax for a site. On this site i have a few modules (custom_mod) with image gallerys. i use Joomla! (2.5.3) JCE Shadowbox plugin. But it do not work. The pictures are open in a new browser window, not in a lightbox.
i have read the instruction above, but it still do not work. I don’t understand it.
Please help ;-)
Tom
you need find how init JCE Shadowbox, and put code for it in “doSomethingAfterFAjxPagLoad” function , as above ;)