2013-04-29 3 views
0

바이러스 게이트라고하는 스크립트를 사용하고 있습니다. 누군가가 Facebook Like Like Box를 클릭 한 후에 div의 콘텐츠를 잠금 해제하는 데 사용됩니다. 유일한 문제는 div가 스크립트보다 먼저 나오므로 페이지가로드 될 때 사용자 연결에 따라 스크립트가 렌더링되기 전에 5 초 이내에 표시됩니다. 즉, div가 표시 될 때 페이지를 일시 중지 할 수 있으면 JavaScript가 표시되지 않습니다. 렌더링 될 수 있습니다. head 섹션에 스크립트를 삽입 해 보았습니다. 작동하지 않았습니다. 또한 adl-inside-gate 클래스의 div와 같은 결과 앞에 삽입하려고 시도했습니다. 이 내 스크립트가 된 div 및 콘텐츠와 함께입니다 :Div가 자바 스크립트가 렌더링되기 전에 나타납니다

<div name="likebutton" style="padding-left: 370px; width:200px; padding-top:60px; position:relative;"> 
    <!-- *** ADD THIS CODE AFTER YOUR PUBLIC CONTENT *** --> 
    <p class="adl-outside-gate"> 
     <div class="adl-inside-gate" style="float:right"> 
      <div class="linkado" style="width:130px; height:60px; background-color:#FF6600; border-width:4px; border-style:dashed; border-color:#FFFF00; -webkit-border-radius: 15px; -moz-border-radius: 15px; border-radius: 15px;"> <a href="#" target="_blank">Clique aqui para visualizar o seu cupom.</a> 

      </div> 
     </div> 
     <div style="float:left"> <b><!-- Sharing buttons --></b> 
      <!-- Botões --> 
      <!-- Botões --> 
      <div> 
       <div> 
        <div id="fb-root"> <b><script src="http://connect.facebook.net/pt_BR/all.js#xfbml=1&amp;appId=1667889836683276"></script><fb:like font="" href="http://lucrebem.com.br" layout="box_count" send="false" show_faces="false" width="55"></fb:like></b> 

        </div> 
       </div> 
      </div> 
      <!-- Botões --> 
      <!-- Botões --> <b><!-- Here is the code --><script type="text/javascript"> 
     ADL = {}; 


     (function(namespace) { 

     function ViralGate() { }; 

     ViralGate.prototype.setDisplay = function(className, value) { 
      var els = document.getElementsByClassName(className); 
      for (var i = 0; i < els.length; i++) { 
      els[i].style.display = value; 
      } 
     }; 

     ViralGate.prototype.lock = function() { 
      this.setDisplay('adl-outside-gate', 'block'); 
      this.setDisplay('adl-inside-gate', 'none'); 
     }; 

     ViralGate.prototype.unlock = function() { 
      this.setDisplay('adl-outside-gate', 'none'); 
      this.setDisplay('adl-inside-gate', 'block'); 
     } 

     ViralGate.prototype.afterLike = function(event) { 
      // event is the URL 
      ADL.viralGate.unlock(); 
     }; 

     namespace.viralGate = new ViralGate(); 

     })(ADL); 

     ADL.viralGate.lock(); 

     FB.Event.subscribe('edge.create', ADL.viralGate.afterLike); 

     // Google callback must be in global namespace 
     afterPlus = function(data) { 
     ADL.viralGate.afterPlus(data); 
     } 
      </script></b> 
     </div> 
+1

JS를 사용 중지하는 것과 같은 소리는 항상 내 콘텐츠를 볼 수 있습니다. – Bergi

+0

제발, 나에게 모르는 대답을주세요. – 023023

+0

특정 동작을 수행 할 때까지 사용자가 보지 못하게하는 것이면 ajax를 통해로드하는 것이 좋습니다. 그렇지 않으면 항상 마크 업에있게됩니다. –

답변

0

당신은 "없음"에 숨겨진 기본값하려는 사업부의 표시 CSS 속성을 기본으로해야합니다. 예 :

<div style="display: none"></div> 

이렇게하면 기본적으로 숨겨져 js에서 나중에 표시 할 수 있습니다.

+0

간단하게 될 수 있습니다. Thx, 그것은 효과가 있었고, 자바 스크립트로도 숨겨져있을 것이라고 생각했기 때문에 이전에는 사용하지 않았습니다. – 023023