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