Php FB Root为空,但仅在Firefox和IE中有时为空

Php FB Root为空,但仅在Firefox和IE中有时为空,php,javascript,facebook,Php,Javascript,Facebook,我在我的网站的Login.php页面上有一个Facebook登录按钮,当它在那里时,它会正常工作。但是由于某种原因,当我点击这个login.php的链接时,按钮没有出现。当我刷新页面时,按钮弹出。当我手动转到login.php时,每次都会出现该按钮 这似乎只发生在Firefox(mac)上,我无法在Chrome上复制这个问题。Firebug告诉我此错误,但即使在按钮加载时也会显示: document.getElementById("fb-root") is null 我的按钮呈现代码如下所示:

我在我的网站的Login.php页面上有一个Facebook登录按钮,当它在那里时,它会正常工作。但是由于某种原因,当我点击这个login.php的链接时,按钮没有出现。当我刷新页面时,按钮弹出。当我手动转到login.php时,每次都会出现该按钮

这似乎只发生在Firefox(mac)上,我无法在Chrome上复制这个问题。Firebug告诉我此错误,但即使在按钮加载时也会显示:

document.getElementById("fb-root") is null
我的按钮呈现代码如下所示:

<fb:login-button onclick="trainer()" perms="read_stream,email,publish_stream,offline_access,user_checkins,friends_checkins"></fb:login-button>
<div id="fb-root"> </div>

我将FB.init代码放在body标记之后的脚本标记中

更新:事实上我刚刚确认了同样的错误会在Windows上的IE8中弹出

任何建议都有帮助,谢谢

你可以检查一下,看看是否一切都设置正确

他指出的一点是,您必须按照如下方式正确设置html标记:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">

您可以查看是否所有设置都正确

他指出的一点是,您必须按照如下方式正确设置html标记:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">


如果有人遇到这个问题,我已经找到了它这样做的原因:我移动到FB.init()函数包含的上面,可能浏览器认为它不存在,因为它还没有呈现完整的页面(可能)?在任何情况下,这都是有效的,也要确保你把div和脚本放在body标签之后,谢谢链接Chris!我也有同样的问题,正如Chris指出的,这是因为我的html标记中缺少(xml:lang=“en”)。如果有人有这个问题,我已经找到了它这样做的原因:我移动到FB.init()函数所包含的上面,可能浏览器认为它不存在,因为它还没有呈现整个页面(可能)?在任何情况下,这都是有效的,也要确保你把div和脚本放在body标签之后,谢谢链接Chris!我也有同样的问题,正如Chris指出的,这是因为我的html标记中缺少(xml:lang=“en”)。