Поделиться этой кнопкой не работает на страницах, загруженных через ajax - PullRequest
15 голосов
/ 22 сентября 2010

Я пытаюсь использовать эту кнопку на странице, которая загружается через ajax.Кнопки не отображаются.Пожалуйста, помогите.

С уважением, Pankaj

Ответы [ 8 ]

43 голосов
/ 22 июня 2011

После добавления нового контента в DOM, позвоните

stButtons.locateElements();

// or if you want to be a bit defensive about whether the lib has been
// loaded or not:
if (window.stButtons){stButtons.locateElements();} // Parse ShareThis markup

Артикул Другой Другой

8 голосов
/ 30 августа 2017

Обновлено 09/2017 Ответ

Объект stButtons больше не существует, теперь вы можете использовать

window.__sharethis__.initialize()

Для повторной инициализации кнопок

3 голосов
/ 16 февраля 2015

Это решение также будет работать для основанных на NodeJS сред, таких как Meteor.

stButtons.locateElements();

требуется при отображении обратного вызова шаблона, чтобы гарантировать, что кнопки shareThis появятся на перенаправлении страницы.

2 голосов
/ 14 января 2015

Я столкнулся с той же проблемой с разделением страниц на эту и Ajax. Кнопки не показывались после сообщений, загруженных Ajax, поэтому я искал и нашел это. Я только что добавил функцию stButtons.locateElements(); на Ajax success:

что-то вроде success: stButtons.locateElements();

Надеюсь, это будет полезно для таких, как я.

Спасибо Ibnul

1 голос
/ 12 сентября 2018

сделайте это:

window.__sharethis__.load('inline-share-buttons', config);

и настройте ваши кнопки с помощью JavaScript.

1 голос
/ 22 декабря 2017

Для нового API у меня сработало следующее решение

if (__sharethis__ && __sharethis__.config) {
    __sharethis__.init(__sharethis__.config);
}

Добавьте этот код после загрузки содержимого ajax.

0 голосов
/ 22 марта 2017

В Drupal вы можете добиться этого, добавив следующий код

(function($){
 Drupal.behaviors.osShareThis = {
attach: function(context, settings) {
  stLight.options({
    publisher: settings.publisherId
  });
  // In case we're being attached after new content was placed via Ajax,
  // force ShareThis to create the new buttons.
  stButtons.locateElements();
}
};
});
0 голосов
/ 27 января 2012

Я нашел следующее решение на одном из форумов addThis, и оно отлично сработало для меня. Я вызвал функцию как обратный вызов к моему вызову ajax. Hoep это помогает

<script type="text/javascript">
       function ReinitializeAddThis(){
      if (window.addthis){
         window.addthis.ost = 0;
         window.addthis.ready();
      }
   }
...
$('#camps-slide .results').load(loc+suffix, function() {ReinitializeAddThis();});
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...