2011-05-02 50 views
2

我決定JS解決方案(The EqualHeights Plugin)與高度相同的列在這種情況下可能是最好的,但我在Disqus中遇到了問題。正如你可能已經知道的那樣,Disqus異步加載。這真是太好了,所有的(好的,不是真的),但是因爲評論正在加載其他所有內容,包括插件,所以他們被切斷了。我無法弄清楚如何解決這個問題。我實際上嘗試過CSS「hack」來獲得相同高度的列,希望它不會與Disqus發生衝突,但我在那裏也沒有任何運氣。獲取Equal Height列jQuery插件和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> 
+0

你是如何加載disqus的?發佈一些用於調用disqus的代碼,我們可以幫助您推遲jquery代碼的執行,直到disqus被加載之後......另外,請參閱最近關於等高度列的替代方法的問題:http://stackoverflow.com/問題/ 5808254 /確定高度的動態組件/ 5808601#5808601 – ampersand 2011-05-02 05:36:06

+0

謝謝,我會看看。就像我說的,我傾向於JS這個,但我仍然對CSS修正開放。另外,添加Disqus代碼。 – Andrew 2011-05-02 05:54:37

回答

0

可以推遲插件運行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); 
})(); 
+0

我說你說的Equal Heights代碼。 jQuery代碼工作正常,但現在Disqus評論根本沒有顯示出來。也許我只是在這裏密集。這是平等高度腳本的原始代碼:'$(function(){ $('。equal')。equalHeight(); });' – Andrew 2011-05-02 18:15:00

+0

oops,我重寫代碼時出錯您。這一行:'dsq.onload = script.onreadystatechange = function(){'需要'dsq.onload = dsq.onreadystatechange = function(){'。我正在使用我的一個項目中的代碼,其中有一個名爲'script'的變量,但是你沒有。我已經更新了答案。嘗試新版本。 – ampersand 2011-05-02 20:18:33

+0

現在評論工作得很好,但jQuery代碼不是。我需要更改jQuery代碼嗎?對不起,好像Disqus讓一切變得更加複雜。 – Andrew 2011-05-02 21:04:57