В IFrame-приложении стоит виджет "мне нравится". Заказчик попросил отловить события клика по нему. (Используется только JavaScript-Api) Если верить документации http://vk.com/pages?oid=-1&p=%D0%94%D0% ... 0%B8%D1%8F такая возможность имеется и мне нужно использовать VK.Observer для включения своего обработчика соответствующих событий. Отягощает отсутствие примера, но его я честно подглядел на http://flapps.ru/forum/topic3122.html.
Написал тестовый код, который просто выводит alert'ы по событиям... но он не работает. лайк - есть, а alert'ов нет.
Код: Выделить всё
var liked=function(){ alert('like');}var unlike=function(){ alert('unlike');}$(function(){ VK.init(function() { //VK like VK.Widgets.Like('vk_like', {type: 'mini', verb: 1}); VK.Observer.subscribe('widgets.like.liked', liked); VK.Observer.subscribe('widgets.like.unliked', unlike); }); });
Смутило, что для JavaScript-api VK.Observer вообще не заявлено в документации http://vk.com/pages?oid=-1&p=IFrame-%D0 ... ript%20API
Вторая мысль которая возникла: использовать VK.addCallback(String name, Function value) что показано на http://vk.com/pages?oid=-1&p=IFrame-%D0 ... 0%B8%D0%B9 (не смотря на отсутствие там в таблице событий моего, впрочем и для VK.Observer http://vk.com/pages?oid=-1&p=VK.Observer обраточика из доки к виджету тоже нет)
Получилась вариация передыдущего кода с изменёнными строками
Код: Выделить всё
//VK like VK.Widgets.Like('vk_like', {type: 'mini', verb: 1}); /* VK.Observer.subscribe('widgets.like.liked', liked); VK.Observer.subscribe('widgets.like.unliked', unlike); */ VK.addCallback('VK.Observer.widgets.like.liked', liked); VK.addCallback('VK.Observer.widgets.like.unliked', unlike);
Код: Выделить всё
//VK like VK.Widgets.Like('vk_like', {type: 'mini', verb: 1}); /* VK.Observer.subscribe('widgets.like.liked', liked); VK.Observer.subscribe('widgets.like.unliked', unlike); */ VK.addCallback('widgets.like.liked', liked); VK.addCallback('widgets.like.unliked', unlike);