3

イントロ:私はphpとJavascriptの両方の初心者であり、私のサイトでこの問題を解決しようとしています(この問題の別のバージョンはここにあります)が、LocalPCguyによる回答を有効にするのに問題がありました。(要するに、問題は、無限スクロールがアクティブになっている場合、ソーシャルボタンはロードされた最初の投稿では機能しますが、その後にロードされた投稿では機能しないことです)。

  • 私はWordPressを使って作業しており、各投稿の外観のほとんどを生成する既存のphpファイルにソーシャルボタンを追加しました。各投稿の希望する場所にボタンが表示されるため、適切な場所に追加しているようです(ページの最初のボタンのみ)。この問題について投稿した他の2人のように、私はソーシャルプラグインとしてdiggdiggを使用しています。

  • 現在、ソーシャルボタンを生成するphpファイルのコードは次のようになります。

    <div class="sharing-button">
        <?php dd_google1_generate('Compact (20px)') ?>                                                          
    </div>
    

私が言ったように、これはロードされる最初の投稿にボタンを表示しますが、無限スクロールが追加の投稿をロードしようとすると、ソーシャルボタンはそれらの投稿に表示されません。

今のところ私は以下を試しました:

  • すぐ上または下(ここでの回答から取得)、または<div>phpファイルのボタンを含む私の中にコードを追加します。

    if (typeof gapi !== "undefined") { gapi.plusone.go(); }
    
  • それはうまくいきませんでした。これは、.phpファイルがjavascript操作を実行する必要があることを知るために何らかのシグナルが必要になるためだと思いました。だから私は周りを見回して、これを行う方法について、ここここでいくつかの提案を見つけました。どちらの場合も、ボタンを適切に表示することができませんでした。以下は、それらの試みの中で最もばかげているように見えたものでした:

    <?php
        echo '<script type="text/javascript"> 
            if (typeof gapi !== "undefined") { gapi.plusone.go(); }';
        echo '</script>';
    ?>
    
  • また、引数をに渡す必要があると思い、上記gapi.plusone.go()の共有ボタンを渡してみまし<div>たが、それも機能しませんでした(phpブロック内のjavascriptスクリプト内のphpコード...大きな期待はありませんでした)。

この時点で、私は何をすべきかわかりません-解決策はおそらく非常に単純であるように感じますが、phpなどへのjavascriptの統合に関するスレッドを読むのに何時間も費やして完全に立ち往生しています。

そのJavascriptソリューションを.phpに依存するWordpressテーマに 適用する方法を誰かが知っていますか?

大変感謝します!

4

2 に答える 2

1

短い答え:これは不可能です。

長い答え:最初はPHP、2番目はjavascriptです。PHPの「プログラム」は、Webプロバイダーのサーバーであるサーバーで実行されます。このサーバーはすべてのPHPのものを処理します。これが終了すると、Webサイトのファイルがコンピューターに送信されます。とりわけ、javascriptが含まれています。

そして、このjavascriptは、あなたが見ているコンピュータでのみ実行されます。ブラウザがページをロードしてjavascriptの実行を開始したら、サーバーに詳細情報を要求するにはもう手遅れです。

それを可能にするテクニックがあります(AJAXがキーワードです)が、それは別の質問です:-)

于 2013-03-25T23:30:16.427 に答える
1

無限スクロールはajaxを使用して次の投稿セットをロードするため、ボタンを機能させるにはボタンのJavaScriptを開始する必要があります。私が見つけた1つの例ですが、プラグインがFBMLを使用している場合にのみFacebookで実行されます。

$(document).ajaxComplete(function(){
    try{
        FB.XFBML.parse(); 
    }catch(ex){}
});

Facebookのカスタム実装のLikeBoxと無限スクロールを使用していますが、これは問題なく機能します。

于 2013-07-25T09:13:08.663 に答える