parschakov
@parschakov
Начинающий изучать PHP и JS

Как правильно обработать удачный шаринг контента?

Здравствуйте.
Подскажите пожалуйста, возможно ли отследить и после удачного шаринга отправить запрос (или к примеру перезагрузить страницу)?
Использую следующий код:
Share = {
        go: function(_element, _options) {
            var
                self = Share,
                options = $.extend(
                    {
                        type:       'vk',
                        url:        location.href,
                        count_url:  location.href,
                        title:      document.title,
                        image:        '',
                        text:       '',
                    },
                    $(_element).data(),
                    _options
                );

            if (self.popup(link = self[options.type](options)) === null) {
                // Если не удалось открыть попап
                if ( $(_element).is('a') ) {
                    $(_element).prop('href', link);
                    return true;
                }
                else {
                    location.href = link;
                    return false;
                }
            }
            else {
                // Попап успешно открыт, просим браузер не продолжать обработку
                return false;
            }
        },

        // ВКонтакте
        vk: function(_options) {
            var options = $.extend({
                url:    location.href,
                title:  document.title,
                image:  '',
                text:   '',
            }, _options);

            return 'http://vkontakte.ru/share.php?'
                + 'url='          + encodeURIComponent(options.url)
                + '&title='       + encodeURIComponent(options.title)
                + '&description=' + encodeURIComponent(options.text)
                + '&image='       + encodeURIComponent(options.image)
                + '&noparse=true';
        },

        // Открыть окно шаринга
        popup: function(url) {
            return window.open(url,'','toolbar=0,status=0,scrollbars=1,width=626,height=436');
        }
    };

    $(document).on('click', '.social_share', function(){
        Share.go(this);
    });


Кнопка:
<button class="social_share" data-type="vk">ВКонтакте</button>


То есть, при клике на кнопку, открывается окно для шаринга и если юзер действительно нажмет отправить (расшарит у себя вконтакте), то сделать действие, например перезагрузить/обновить страницу или выполнить функцию.

Заранее спасибо за внимание и помощь!
  • Вопрос задан
  • 267 просмотров
Решения вопроса 1
@radio_mus
Подключаемся:
// <b>VK</b>
<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?49"></script>
<script type="text/javascript">
    VK.init({ apiId: id_app, onlyWidgets: true });
</script>
// <b>FB</b>
<script src="//connect.facebook.net/en_US/all.js"></script>
// <b>Twitter</b>
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>


Подписываемся на события:
// <b>VK</b>
    // LIKE
    VK.Observer.subscribe('widgets.like.liked', function(likeCount) {
        // do something
    });

    // SHARE
    VK.Observer.subscribe('widgets.like.shared', function(likeCount) {
        // do something
    });

// <b>FB</b>
FB.Event.subscribe('edge.create', function(opt_target) {
    // do something
});

// <b>Twitter</b>
trackTwitterHandler_ = function(intent_event) {
  var opt_target; 
  if (intent_event && intent_event.type == 'tweet' || intent_event.type == 'click') {
    var socialAction = intent_event.type + ((intent_event.type == 'click') ? '-' + intent_event.region : '');

    if(socialAction =='tweet') {
      // do something
    }
  }
};

intent_handler = function(intent_event) {
   trackTwitterHandler_(intent_event);
};
	
twttr.events.bind('click', intent_handler);
twttr.events.bind('tweet', intent_handler);


// do something заменить на нужное действие.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы