问题描述
||
我认为在这种情况下,将等高列的JS解决方案(“ EqualHeights插件”)最好是最好的,但是我在使用disqus时遇到了麻烦。您可能已经知道,disqus异步加载。很好,而且一切都很好(嗯,不是真的),但是因为注释会在其他所有东西(包括插件)之后加载,所以它们被砍掉了。我不知道该如何解决。我实际上尝试过CSS“ hack”来获取等高的列,希望它不会与disqus冲突,但是我也没有运气。
预先谢谢大家。您在这里总是无价之宝。
disqus代码:
<script type=\"text/javascript\">var disqus_url = \"{Permalink}\"; var disqus_title =\"{block:PostTitle}{PostTitle}{/block:PostTitle}\";</script>{block:Permalink}<div id=\"disqus_thread\"></div>
<script type=\"text/javascript\">
/**
* var disqus_identifier; [Optional but recommended: Define a unique identifier (e.g. post id or slug) for this thread]
*/
(function() {
var dsq = document.createElement(\'script\'); dsq.type = \'text/javascript\'; dsq.async = true;
dsq.src = \'http://escapology.disqus.com/embed.js\';
(document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view <a href=\"http://disqus.com/?ref_noscript=escapology\">comments.</a></noscript>
{/block:Permalink}<script type=\"text/javascript\">
var disqus_shortname = \'escapology\';
(function () {
var s = document.createElement(\'script\'); s.async = true;
s.src = \'http://escapology.disqus.com/count.js\';
(document.getElementsByTagName(\'HEAD\')[0] || document.getElementsByTagName(\'BODY\')[0]).appendChild(s);
}());
</script>
解决方法
您可以推迟插件的执行,直到加载Disqus之后。这是您的Disqus线程之一的处理方式。对每个对象执行此操作:
(function() {
var dsq = document.createElement(\'script\'); dsq.type = \'text/javascript\'; dsq.async = true;
dsq.src = \'http://escapology.disqus.com/embed.js\';
var done=false;
dsq.onload=dsq.onreadystatechange = function(){
if ( !done && (!this.readyState || this.readyState == \'loaded\' || this.readyState == \'complete\') ) {
done=true;
//CALL YOUR EQUAL HEIGHTS JQUERY CODE HERE
dsq.onload = dsq.onreadystatechange = null;
}
};
(document.getElementsByTagName(\'head\')[0] || document.getElementsByTagName(\'body\')[0]).appendChild(dsq);
})();