偏离顶部懒惰加载Disqus / Disqus

时间:2015-06-16 01:57:08

标签: javascript jquery lazy-loading disqus livefyre

我过去几天一直在尝试懒惰加载Livefyre或Disqus的滚动距离从顶部开始(与通常的加载到达评论部分时的加载触发器相反)所以评论已经由到达帖子底部的时间。

我找到了这个教程:http://christian.fei.ninja/how-to-lazy-load-disqus-comments/

但不幸的是我无法让它发挥作用。花了好几个小时来处理我对编码的一点知识后,我发现没有任何反应的原因是因为disqus embed.js文件本身就会抛出一个错误。它试图使用" appendChild"在其中一个函数中的未定义变量上。他们的代码缩小了,所以我无法真正理解错误。

我的猜测是,教程缺少一些HTML标记,这是使用铁饼嵌入代码正常工作所必需的。所以我一直试图使用Livefyre。这是我到目前为止:

<head>
<script type="text/javascript" src="http://zor.livefyre.com/wjs/v3.0/javascripts/livefyre.js"></script>
<script type="text/javascript">

    var comments = document.getElementsByClassName('comments')[0],
    livefyreLoaded=false;

    function loadLivefyre() {
        var articleId = fyre.conv.load.makeArticleId(null);
        fyre.conv.load({}, [{
            el: 'livefyre-comments',
            network: "livefyre.com",
            siteId: "XXXX",
            articleId: articleId,
            signed: false,
            collectionMeta: {
                articleId: articleId,
                url: fyre.conv.load.makeCollectionUrl(),
            }
        }], function() {});
        livefyreLoaded = true;
    }());

    //Get the offset of an object
    function findTop(obj) {
        var curtop = 0;
        if (obj.offsetParent) {
            do {
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
            return curtop;
         }
     }

    if(window.location.hash.indexOf('#comments') > 0)
    loadLivefyre();

    if(comments) {
        var commentsOffset = findTop(comments);

        window.onscroll = function() {
            if(!disqusLoaded && window.pageYOffset > commentsOffset - 1500) {
                console.log('load comments, NOW!!');
                loadLivefyre();
            }
        }
    }
</script>
</head>
<body>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<div class="comments"></div>
</body>

但我对javascript知之甚少,这是我糟糕的补丁工作。

0 个答案:

没有答案