Disqus + ajax + умер

Я пытался загрузить Disqus с помощью ajax на своей странице, я объясню. У меня есть одна страница внутри, у меня есть jqrusel, с разными изображениями, и у каждого есть свои комментарии.

Итак, когда я нажал на одно из этих изображений, я сделал этот код:

 $.get("/sets/comentarios",{set_id:set_id},function(data){
                $("#componet_comentarios").html(data);             

и эта загрузка URL:

 var disqus_identifier = 'votar-<?= $id; ?>';
    var disqus_url = 'www.mitrendy.com/votar/<?= $id; ?>';

    // Remove the old script if it's found 
    oldDsq = document.getElementById('MitrendyComentDisqus');
    if(oldDsq) {
        (document.getElementsByTagName('head')[0] ||
        document.getElementsByTagName('body')[0]).removeChild(oldDsq);
    }


    (function() {
        var dsq = document.createElement('script');
        dsq.type = 'text/javascript';
        dsq.async = true;
        dsq.id = "MitrendyComentDisqus-<?= $id; ?>";
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();

но никогда не обновляйте комментарии. Позже я увидел на официальной странице disqus:

DISQUS.reset({
  reload: true,
  config: function () {  
    this.page.identifier = "newidentifier";  
    this.page.url = "http://example.com/#!newthread";
  }
});

но то же самое, когда я пытался загрузить комментарии с помощью ajax, никогда не обновлял их.

Есть идеи ? я без ума от этого.

Всем спасибо!!


person Rubén Fanjul Estrada    schedule 18.12.2011    source источник
comment
Вы когда-нибудь находили решение? У нас проблемы с этим. Фактически, всякий раз, когда я даю URL-адрес хэш-банга для disqus, я получаю ошибку 400 неверных запросов. Есть идеи?   -  person Allov    schedule 10.03.2012
comment
Нет на данный момент. Я пробовал все, но не повезло   -  person Rubén Fanjul Estrada    schedule 13.03.2012
comment
Сейчас я связываюсь со службой поддержки Disqus по электронной почте. Я буду держать вас в курсе.   -  person Allov    schedule 13.03.2012
comment
Теоретически в соответствии с документацией должно работать с этим: DISQUS.reset({ reload: true, config: function () { this.page.identifier = newidentifier; this.page.url = example.com/#!newthread; } }); но не работает :(   -  person Rubén Fanjul Estrada    schedule 13.03.2012
comment
Да, на самом деле, я проверил это немного дальше и обнаружил, что в моем случае функция обратного вызова (config) никогда не вызывается.   -  person Allov    schedule 13.03.2012


Ответы (1)


У меня была аналогичная проблема, я переместил свой сайт на ajax, и подстраница, ранее включенная в php, которая содержит disqus js, теперь загружается с использованием ajax (контейнер для disqus и его скриптов), но когда это не загружается всей страницей, скрипты Не Оценено. Поэтому я переместил их в глобальный файл .js и обернул функцией, например так:

var disqus_shortname = 'myname';
var disqus_identifier = 'myident';

function loadDisqus()   {
    (function() {
        var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
        dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
        (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
}

и после того, как ajax загружает контент, я вызываю loadDisqus();, и доска загружается. В вашем примере вы также должны передать идентификатор в качестве параметра и определить его при вызове, все должно работать правильно.

person wolo    schedule 26.03.2012
comment
Какой URL-адрес вы используете для disqus_url. Это хэш-банг (#!), Или это обычный URL-адрес? - person Allov; 27.03.2012
comment
Как вы передаете disqus_identifier? - person Hamed Minaee; 21.05.2018