Atk4 Step by Step表单不会加载Facebook Like Buttons

时间:2012-04-17 18:20:27

标签: facebook frameworks atk4

我有一个包含网站列表的数组,我正在使用http://codepad.agiletoolkit.org/newsletter示例逐步编码。

在第二步中,我使用以下代码放置Like Buttons:


    $attr = array (
      'data-send' => FALSE,
      'data-layout' => 'button_count',
      'data-width' => 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);
    }

当我直接访问时这很好用,但是当我尝试通过下一个按钮访问时,Like按钮不会加载。

对此有何解决方案?

1 个答案:

答案 0 :(得分: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/