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>


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

Заранее спасибо за внимание и помощь!
  • Вопрос задан
  • 222 просмотра
Решения вопроса 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
Похожие вопросы
Finch Москва
от 120 000 до 150 000 руб.
//stablecode Вена
от 120 000 до 160 000 руб.
UNIQ systems Казань
от 80 000 руб.
21 окт. 2018, в 22:38
1200 руб./за проект
21 окт. 2018, в 17:05
5000 руб./за проект