Страница 1 из 1

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

Добавлено: 02 апр 2013, 06:07
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() вызывается, но поле остаётся пустым.

В чём может быть проблема и как это исправить?
И если уж на то пошло: можно ли сделать (и как), чтобы заполнение шло вообще автоматически, не по клику, а сразу при загрузке страницы?

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

Добавлено: 02 апр 2013, 08:30
Serge
Что бы сработало с первого раза - засуньте
document.getElementById('vk-id').value = n;
сразу после определения n (сразу после if). Что бы не по клику, а сразу - window.onload вроде.

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

Добавлено: 06 апр 2013, 06:55
aikr
Serge, спасибо, заработало!