我正在开发一个facebook应用程序(使用iframe)。
我的页面已经完全加载,它正确地显示了fbml内容(请求-表单),但在某些操作中,我调用ajax从服务器(php)获取更新的fbml内容。它带来了代码,但是fbml并没有被解析/呈现,并且包围的div仍然是空的。
下面是我使用ajax获取的fbml:
<fb:serverfbml width="615">
<script type="text/fbml">
<fb:fbml>
<fb:request-form action="some value"
.......//other code.....>
<fb:multi-friend-selector
.......//other code.....
/>
</fb:request-form>
</fbml>
</script>
</fb:serverfbml>在ajax响应之后,封闭的div仍然是空的,但是在firebug中我可以看到下面的代码:
<div id="enclosing_div_id">
<fb:serverfbml width="615"> </fb:serverfbml>
<script type="text/fbml">
<fb:fbml>
<fb:request-form action="some value"
.......//other code.....>
<fb:multi-friend-selector
.......//other code.....
/>
</fb:request-form>
</fbml>
</script>
</div>不过,它不会在我的页面上呈现。
请指点。
谢谢
==============================
更新:
我已经检查了所有的情况,但他们似乎没有在我的情况下工作。
FB.XFBML.parse();
if ( FB.XFBML.Host.parseDomTree )
setTimeout( FB.XFBML.Host.parseDomTree, 0 );
FB.XFBML.parse(document.getElementById('invite_new_div'), function() {
alert('I rendered');
});请注意,到目前为止,我还没有在我的应用中使用FBJS。
发布于 2011-08-09 04:47:40
看起来,您只是将fbml代码放入您的div中,而不是插入本应在facebook服务器上呈现并以标准html形式呈现的输出内容。浏览器不知道如何呈现fbml,这就是为什么您只看到一个空的div。
更新:在您发布FB代码之后,这是有意义的。根据这一停战协议:
http://developers.facebook.com/docs/reference/javascript/FB.XFBML.parse/
只能呈现以下fbml标记:
* fb:activity
* fb:add-profile-tab
* fb:bookmark
* fb:comments
* fb:friendpile
* fb:like
* fb:like-box
* fb:live-stream
* fb:login-button
* fb:recommendations
* fb:serverFbml
* fb:profile-pic
* fb:user-status如您所见,form元素没有作为其中之一列出。这可能是你的问题。
https://stackoverflow.com/questions/6991421
复制相似问题