serovpochta
@serovpochta
Лысый

Как в попап с аякс загрузкой поста вывести комментарии HyperComments?

У этого плагина есть код, с помощью которого комментарии можно вывести на любой странице в любом месте:

<div id="hypercomments_widget"></div>
<script type="text/javascript">
_hcwp = window._hcwp || [];
_hcwp.push({widget:"Stream", widget_id: WIDGET_ID});
(function() {
if("HC_LOAD_INIT" in window)return;
HC_LOAD_INIT = true;
var lang = (navigator.language || navigator.systemLanguage || navigator.userLanguage ||  "en").substr(0, 2).toLowerCase();
var hcc = document.createElement("script"); hcc.type = "text/javascript"; hcc.async = true;
hcc.src = ("https:" == document.location.protocol ? "https" : "http")+"://w.hypercomments.com/widget/hc/WIDGET_ID/"+lang+"/widget.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hcc, s.nextSibling);
})();
</script>
<a href="http://hypercomments.com" class="hc-link" title="comments widget">comments powered by HyperComments</a>


есть документация: https://www.hypercomments.com/documentation

Но комментарии не выводятся, а выводится ссылка плагина(это можно увидеть кликнув почти по любому посту cg91812-wordpress-3.tw1.ru ), которую заметно при загрузке поста на его странице обычного варианта: cg91812-wordpress-3.tw1.ru/robin-eisenberg

Вот, что делать? )
Спасибо
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
@void01
скрипт инициализируется и строит DOM комментариев единожды, т.е. открыв аяксом пост скрипт просто не построит нужные элементы, т.к. считает, что он это уже сделал и больше не надо.
с подобной проблемой сталкиваются практически все кто работает с аякс -))
плагины не расчитаны на такую работу, надо смотреть скрипт и искать способы переинициализировать его,
убивать HC_LOAD_INIT не вариант, т.к. тогда каждый аякс будет добавлять новый тэг script

сейчас гляну код твоего плагина, может подскажу -))

UPD: насколько я вижу по документации виджет позволяет динамическую подгрузку....
https://www.hypercomments.com/ru/documentation/dyn...
и загрузку нескольких виджетов на странице
https://www.hypercomments.com/ru/documentation/sev...

т.е.
в свой аякс
success:function(data){}
тебе просто надо вставить
document.getElementById('hypercomments_widget').innerHTML = '';
var _hcp = {};
_hcp.widget_id = WIDGET_ID
_hcp.xid   = PAGE_XID; 
HC.widget("Stream", _hcp);


а если ты генеришь несколько постов и для каждого нужен виджет комментариев
используй второй способ
<div id="hypercomments_widget2"></div>
<script type="text/javascript">
_hcwp.push({widget:"Stream", widget_id: WIDGET_ID, xid: "page_2", append: "#hypercomments_widget2", hc_disable: 1});
</script>


P.S. непонятно, что тебе мешало самому внимательно посмотреть документацию к плагину =)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы