2011-09-19 74 views
0

我有我的网站上的ajax驱动的新闻部分。我正在尝试实现Facebook Like按钮的xfbml版本,并遇到了一些问题。Facebook的xfbml像按钮无法正常工作

第一次点击新闻项目上的“Like”时,没有任何og标签被拉入,所以您只能看到一个评论框。勉强,如果我然后查看另一个新闻项目并返回到第一个新闻项目,类似的按钮工作正常,所有og数据被正确拉动。这似乎是某种缓存问题?

我也遇到了一个问题,在点击之后,浮动弹出框消失,然后才有机会输入评论。它在那里几分之一秒。如果我不喜欢新闻并喜欢它,浮动弹出框最终会保持放置状态,但可能需要尝试几次。

这里是头

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en-GB" lang="en-GB"> 
<head> 
<meta property="og:title" content="She's in fashion"/> 
<meta property="og:type" content="article"/> 
<meta property="og:url" content="http://www.kirkleescollege.ac.uk/news/1103"/> 
<meta property="og:image" content="http://www.kirkleescollege.ac.uk/photo/news/1103/full"/> 
<meta property="og:site_name" content="Kirklees College"/> 
<meta property="og:description" content="This year Rebekah Crowther will take the first steps towards her dream career in fashion retail thanks to a new course at Kirklees College."/> 
<title>Kirklees College News - She's in fashion</title> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 

的样本,这是人体的代码,目前的测试服务器,而不是活的服务器上。

<div id="fb-root"></div> 
<script> 
$(document).ajaxComplete(function(){ 
    try{ 
     FB.XFBML.parse(); 
    }catch(ex){ 
    }}); 

(function(d){ 
    var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js#appId=APPID&xfbml=1"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 



</script> 

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#appId=APPID&xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<div class="fb-like" data-href="http://www.kirkleescollege.ac.uk/news/<?php echo $id; ?>" data-send="true" data-layout="button_count" data-width="450" data-show-faces="false"></div> 

的东西coulpe提关于上述代码,现场代码我的应用程序ID设置,但我不知道这是否是让我在这里已经删除了敏感信息。我假设这两个应用程序ID应该是相同的?
FB.XFBML.parse()代码来自Stackoverflow。它允许类似的按钮加载在ajax驱动的页面上。
我不明白的是为什么它是间歇性的。你会认为如果错误的东西仍然是一致的。

希望有人能帮助,因为这是推动我疯了!

+0

它也值得一提,所有有关问题,纯粹是我的网站上结束。当点击“发布到Facebook”时,即使弹出窗口中没有出现og内容,它通常会显示在我的Facebook页面上。 – iltdev

回答

2

你必须添加的appid代码

检查线路

js.src =“//connect.facebook.net/en_US/all.js#appId=APPID & xfbml = 1“;

,而不是APPID你HV粘贴你自己的appid