0

サイトのリストを含む配列があります。http://codepad.agiletoolkit.org/newsletterの例を使用してステップバイステップのフォームをコーディングしています。

2番目のステップでは、次のコードを使用して「いいね」ボタンを配置します。

    $ attr =配列(
      'data-send' => FALSE、
      'data-layout' =>'button_count'、
      'データ幅'=>100、
      'data-show-faces' => FALSE  
    );
    foreach($ this-> sites as $ k => $ site){
      $ div = $ form-> add('View_HtmlElement')-> setElement('div')-> set(NULL);  
      $ attr ['data-href'] = $ site;  
      $ div-> addClass('fb-like');
      $ div-> setAttr($ attr);
    }

これは、直接アクセスする場合はうまく機能しますが、次のボタンを介してアクセスしようとすると、「いいね」ボタンが読み込まれません。

これに対する解決策はありますか?

4

1 に答える 1

1

Facebookやその他のボタンがAJAXページで機能しない理由は、Facebookスクリプトは通常、ページの初期ロード時にのみHTMLを処理するためです。例のフォームが次のステップに進むと、AJAXを使用して追加のフォームが読み込まれます。その結果、Facebookのスクリプトを手動でトリガーしてページを再ウォークするか、リロードする代わりにリダイレクトを実行する必要があります。変更する必要があります:

$this->js()->atk4_load($this->api->getDestinationURL('./step2'))
    ->execute();

$this->js()->univ()->location($this->api->getDestinationURL('./step2'))
    ->execute();

この記事も役立つかもしれません:http://agiletoolkit.org/blog/adding-twitter-button-to-ajax-page/

于 2012-04-18T13:54:19.663 に答える