我有一个包含网站列表的数组,我正在使用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按钮不会加载。
对此有何解决方案?
答案 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/