0

私はバイラル ゲートと呼ばれるスクリプトを使用しています。誰かが Facebook のようなボックスをクリックした後、div 内のコンテンツのロックを解除するために利用されます。唯一の問題は、div がスクリプトの前に来ることです。スクリプトは、ユーザー接続に応じて 5 秒以内にレンダリングされます。つまり、ユーザーが div が表示されたときにページを一時停止できることを希望する場合、JavaScript はレンダリングされません。head セクションにスクリプトを挿入しようとしましたが、機能しませんでした。また、adl-inside-gate クラスで 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>
4

1 に答える 1

0

デフォルトで非表示にする div の display css プロパティを「none」にデフォルト設定する必要があります。何かのようなもの:

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

これにより、デフォルトで非表示になり、js で後で表示できるようになります。

于 2013-04-29T19:59:29.637 に答える