ID пользователя определяется только со второй попытки

Создание Desktop-приложений, виджеты ВКонтакте для сайтов и публичных страниц, OAuth 2.0, Open API, Standalone
Ответить
aikr
Сообщения: 2
Зарегистрирован: 02 апр 2013, 06:04

ID пользователя определяется только со второй попытки

Сообщение aikr »

Простейшая задача: нужно на сайте определять, залогинен ли посетитель в контакте, и если да, то какой его id.
Зарегистрировал приложение, связанное с моим сайтом. Дальше делаю буквально по учебнику:

Код: Выделить всё

<script src="http://vkontakte.ru/js/api/openapi.js" type="text/javascript"></script><script type="text/javascript">  VK.init({    apiId: /* здесь id моего приложения */  }); function autoId(){ VK.Auth.getLoginStatus(function(response) {  if (response.session) {    n = response.session.mid;  } else {    n = '---';  }});   document.getElementById('vk-id').value = n;}</script>
В дальнешем функция autoId() вызывается через onclick по определённому элементу.

По идее при этом в текстовое поле vk-id должен подставляться вконтактовский id посетителя (или прочерк, если он не залогинен в контакте). И это даже работает, но проблема в том, что работает лишь со второго клика (как для варианта с залогиненным пользователем, так и без логина). При первом - onclick срабатывает, функция autoId() вызывается, но поле остаётся пустым.

В чём может быть проблема и как это исправить?
И если уж на то пошло: можно ли сделать (и как), чтобы заполнение шло вообще автоматически, не по клику, а сразу при загрузке страницы?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: ID пользователя определяется только со второй попытки

Сообщение Serge »

Что бы сработало с первого раза - засуньте
document.getElementById('vk-id').value = n;
сразу после определения n (сразу после if). Что бы не по клику, а сразу - window.onload вроде.
aikr
Сообщения: 2
Зарегистрирован: 02 апр 2013, 06:04

Re: ID пользователя определяется только со второй попытки

Сообщение aikr »

Serge, спасибо, заработало!
Ответить