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>


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

Заранее спасибо за внимание и помощь!
  • Вопрос задан
  • 213 просмотров
Реклама
Реклама
Решения вопроса 1
  • Подключаемся:
    // <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 заменить на нужное действие.
    Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Реклама