1

在过去的几天里,我一直在尝试延迟加载 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知之甚少,这是我糟糕的补丁工作。

4

0 回答 0