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