uLogin - виджет авторизации через социальные сети « все идеи проекта

4

голоса

Как загрузить js виджета uLogin по требованию?

Перепробовал уже кучу способов. Это вообще возможно?

petrovnn, 15.02.2012, 00:52
Официальный ответ
uLogin Team, 02.05.2012
Скрипт при подключении автоматически инициализирует все элементы подпадающие под критерий поиска.
В текущей версии скрипта(ulogin.js) есть способ инициализации виджета вручную. Для этого необходимо вызвать uLogin.initWidget(element_id), где element_id - id элемента.
Более подробно о том как инициализировать виджет можно посмотреть на http://ulogin.ru/constructor.html
Статус идеи: выполнено

Комментарии

petrovnn, 15.02.2012, 01:00
например такой вариант не работает.


$.ajax({
type: 'GET',
url: 'http://ulogin.ru/js/widget.js?display=small&fields=first_name,last_name,photo&providers=vkontakte,facebook,google,twitter,yandex,odnoklassniki,mailru,livejournal,openid&hidden=&redirect_uri=my_site_url',
success: function(data){

},
error: function(data){
alert('ошибка');
},
dataType: 'script'
});

Точнее скрипт он грузит, но он не инициализируется, то есть не запускается, и элемент IFRAME не встраивается внутрь элемента с ID="uLogin" как должно быть.

eval() не помогает
marazmiki, 15.02.2012, 11:51
А попробуйте делать инициализацию в колбеке success?
petrovnn, 15.02.2012, 12:51
А как сделать инициализацию в колбэке success? Насколько я понял в этом примере инициализация происходит автоматически. Например я загрузил с помощью этого метода такой скрипт: http://ppdd.ws/test.js
И он исполнился автоматически, вот прямо так как у меня в примере выше. Но виджет ulogin почему-то не стартует так-же...

Ставил в колбэк success eval(data), но эффекта нет.
marazmiki, 15.02.2012, 14:01
Судя по коду, нужно вызывать uLogin.init
petrovnn, 15.02.2012, 15:54
я не совсем понимаю зачем нужно вызывать uLogin.init, ведь в оригинальном варианте нам в страницу нужно включить всего два элемента, это DIV с ID=uLogin и тэг SCRIPT который подключает к странице http://ulogin.ru/js/widget.js и передает ему кучу параметров. Все. Нигде не вызывается ведь init отдельно, он вызывается в самом файле widget.js.
petrovnn, 15.02.2012, 15:59
В общем в коде .init начинается с такой строки

q = document.getElementsByTagName('script');

и дальше идет работа с DOM.

Поэтому как я понимаю, загруженный позднее скрипт не видит DOM текущего документа, а поэтому и не может работать с ним. Но как это вылечить пока не понял.
petrovnn, 15.02.2012, 16:02
То есть насколько я понял скрипт загружается и исполняется, но что-то работает не так как в оригинальном способе загрузки и исполнения этого скрипта. Что именно - покрыто мраком, подозрения на DOM, но неплохо-бы получить комментарий разработчика
uLogin Team, 14.03.2012, 17:27
Скрипт при подключении автоматически инициализирует все элементы подпадающие под критерий поиска.
В текущей версии скрипта(ulogin.js) есть способ инициализации виджета вручную. Для этого необходимо вызвать uLogin.initWidget(element_id), где element_id - id элемента.
Более подробно о том как инициализировать виджет можно посмотреть на http://ulogin.ru/constructor.html
petrovnn, 02.05.2012, 14:55
хорошо, это инициализация. Но вопрос был не столько в инициализации, сколько в загрузке JS ulogin по требованию. То есть мне нужно загрузить JS и инициализировать. Не хочу заставлять пользователей грузить файл которым большинство не воспользуется. Ваш сервер оч медленно отдает этот файл, это тормозит загрузку сайтов, естественно я хочу это пофиксить. Поэтому и спрашиваю как загрузить скрипт по требованию.
Паша, 24.12.2012, 21:09
ну это уже базовые знания javascrip, и изменение DOM.
создаете элемент script, путь src указываете http://ulogin.ru/js/ulogin.js, а после этого вызываете метод инициалиции uLogin.initWidget('id_элемента');

А если хотите скачать шаблоны для joomla , то вам сюда http://for-joomla.net/

Оставить комментарий