Клуб пользователей блока «Поделиться»

Можно ли загружать скрипт share.js асинхронно?

lwb
4 декабря 2016, 20:23

В документации по API написано: 
Примечание. Внутри скрипта share2 не следует указывать атрибут async — с этим атрибутом API будет работать некорректно.

Не сильно силен в JS, поэтому возник такой вопрос - будет ли скрипт корректно работать при подключении его после загрузки потока данных? Т.е. что-типа вот такого когда:

<html><body>
..... any html code ........
<div id="forsocial">
  <div id="socialknopki"></div>
</div>
..... any html code ........
<script>
$(document).ready(function(){

  var sTN = document.createElement('script');sTN.type='text/javascript'; 
  document.getElementById('forsocial').appendChild(sTN);sTN.src='//yastatic.net/share2/share.js';

  var YaShare = Ya.share2('socialknopki', {
      theme: {
      services: 'facebook,vkontakte,odnoklassniki',
      counter: true,
      lang: 'ru', size: 'm', 
      direction: 'horizontal', popupDirection: 'top', 
      popupPosition: 'inner', bare: false
      }
  });

}); 
</script>
</body></html>

?

2 комментария
Подписаться на комментарии к посту
Полагаю, что будет.
Проверил, вроде работает. Обернул только вызов var YaShare = Ya.share2('socialknopki', ...) в setTimeout чтобы скрипт с Яндекса успевал подгрузиться и проинициализировать объект Ya.share2 перед обращением к нему).

Пока никаких подводных камней не видно (может быть пока :-)