Как узнать, когда VK.init() выполнился?

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Аватара пользователя
sergiks
Сообщения: 51
Зарегистрирован: 06 окт 2012, 11:59

Как узнать, когда VK.init() выполнился?

Сообщение sergiks »

В iframe приложении использую и виджет комментариев, и хочу сразу по окончании загрузки выполнить вызов js api метода getCountries().

Затык в том, что писать сразу после VK.init({apiId: 12345}); следующей строчкой VK.api(...) нельзя: получаю ошибку "Error: VK not initialized. Please use VK.init".
Виджет загружается и работает. Ошибка пропадает, если не вызывать API метод.

Как правильно инициализировать VK для одновременного использования и виджетов и методов API через JavaScript?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Как узнать, когда VK.init() выполнился?

Сообщение Serge »

sergiks писал(а):В iframe приложении использую и виджет комментариев, и хочу сразу по окончании загрузки выполнить вызов js api метода getCountries().

Затык в том, что писать сразу после VK.init({apiId: 12345}); следующей строчкой VK.api(...) нельзя: получаю ошибку "Error: VK not initialized. Please use VK.init".
Виджет загружается и работает. Ошибка пропадает, если не вызывать API метод.

Как правильно инициализировать VK для одновременного использования и виджетов и методов API через JavaScript?
Не понял. Вроде же как правильная конструкция

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

VK.init(function(){//все запросы к вк тут}); 
Аватара пользователя
sergiks
Сообщения: 51
Зарегистрирован: 06 окт 2012, 11:59

Re: вопрос закрыт

Сообщение sergiks »

Я перепутал OpenAPI вызов виджета с iframe js api. Действительно, всё заработало без проблем примерно так:

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

<script src="http://vk.com/js/api/xd_connection.js?2" type="text/javascript"></script>...<script type="text/javascript">    VK.init(        function(){            VK.Widgets.Comments(                'vk_comments',                {},                'abcdefgh'            );            getCountries();        }    );     function getCountries(){        VK.api(            'places.getCountries',            {                code: 'RU,UA,BY',                test_mode: 1,            },            gotCountries        )    }    function gotCountries( data){        ...    } 
Ответить