События виджета "мне нравится" не работают в IFrame-прилож.
Добавлено: 27 ноя 2012, 14:16
Всем доброго времени суток!
В 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'ов нет.
На одной из статей http://habrahabr.ru/post/158991/ читал, что контакт кэширует запросы, однако если верить firebug'у то сообщение на сервер отсылается, а значит и клиентские скрипты должны отработать, чего по какой-то причине не происходит.
Смутило, что для 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 обраточика из доки к виджету тоже нет)
Получилась вариация передыдущего кода с изменёнными строками
Пробовал даже таким путём:
результат тот-же, т.е. никакой. Поиск решения перешел в плоскость "методом тыка", если кто-то успешно решал задачу.. был бы рад получить посдказку: куда копать. А то что-то то ли лыжи не едут то ли...
В 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);