Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook 未在ajax响应上解析/呈现fbml_Facebook_Fbml - Fatal编程技术网

Facebook 未在ajax响应上解析/呈现fbml

Facebook 未在ajax响应上解析/呈现fbml,facebook,fbml,Facebook,Fbml,我正在开发一个facebook应用程序(使用iframe) 我的页面已经完全加载,它正确地显示了fbml内容(请求表单),但在某些操作中,我调用ajax从服务器(php)获取更新的fbml内容。它带来了代码,但是,fbml没有被解析/呈现,,并且封闭的div仍然为空 以下是我使用ajax获取的fbml: <fb:serverfbml width="615"> <script type="text/fbml"> <fb:fbml

我正在开发一个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>

请注意,到目前为止,我还没有在我的应用程序中使用FBJS。

看起来您只是将fbml代码放入div,而没有将输出内容拉入,这些内容本应在facebook服务器上呈现并作为标准html呈现给您。浏览器不知道如何渲染fbml,因此只能看到一个空div

更新:在你发布了FB js代码之后,它是有意义的。根据这篇文章:

只能渲染以下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

正如您所看到的,表单元素并没有列为其中之一。这可能是您的问题。

我理解这一点,但当页面加载时,它会完美地解析并呈现我在这里提到的相同fbml代码(我从ajax响应中获得的代码)。我相信这是因为facebook在页面加载时解析fbml,但问题是,如何让它在页面完全加载后的某个时间在ajax响应上动态解析和呈现fbml?对,因为你的应用要么解析fbml并吐出html,要么fbml被facebook服务器解析并在你加载iframe页面时吐出html。请向我们提供更多信息,我将尽力帮助您进一步解决此问题。@DeviantSeev:facebook文档(上链接)说可以呈现fb:serverfbml。但我不确定里面的fb:request表单是否可以呈现。这就是我被困的地方。无论如何,感谢到目前为止的所有帮助。@Prashant-在您粘贴的原始代码中,您的表单实际上不在serverfblm标记内,而是在它之外。另外,serverFbml在Fbml中使用大写字母“F”-不确定它是否区分大小写?当我将ajax响应分配给div时,请求表单将自动放置在serverFbml标记之外。不确定如何。您是否尝试执行FB解析代码,但未弹出警报?如果是,您是否使用了正确的div id?第一个html示例使用id=“enclosing\u div\u id”,但FB解析正在查找id为“invite\u new\u div”的元素。是的,会弹出警报,但div仍然为空。是的,div id是正确的;在前面的代码中,我只是使用了一个示例。
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');
});
* 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