Javascript java脚本和开放图形facebook

Javascript java脚本和开放图形facebook,javascript,api,facebook-opengraph,Javascript,Api,Facebook Opengraph,我正在运行一个javascript应用程序,它的一部分运行如下: document.write("<param name='nick' value='" + nick + "'>\n"); 然后使用表单,这样人们就可以在开始之前在那里进行更改, 最奇怪的是,当我用警报调用function时,它给了我名字,但另一部分给了我一个未终止的返回,这就是为什么我请求帮助,我不明白为什么msgbox在同一个脚本上工作,而另一部分保持未终止,这是同一个脚本 所以这是可行的: <bu

我正在运行一个javascript应用程序,它的一部分运行如下:

document.write("<param name='nick' value='" + nick + "'>\n");
然后使用表单,这样人们就可以在开始之前在那里进行更改, 最奇怪的是,当我用警报调用function时,它给了我名字,但另一部分给了我一个未终止的返回,这就是为什么我请求帮助,我不明白为什么msgbox在同一个脚本上工作,而另一部分保持未终止,这是同一个脚本

所以这是可行的:

    <button name="my_full_name" onclick="testbut()" value="My Name" />
<script language="javascript" type="text/javascript">
function testbut() {
        FB.api("/me",
                function (response) {
                    alert('Name is ' + response.name);
                });

    }
</script>

我确信这个文档是正确的,因为我可以把任何东西放在值部分,它就会显示出来

我不想给出一个以文档链接开头的答案,但看起来这是您的第一个应用程序。本文以文档为例回答了这个问题:

在等待远程数据时,必须异步进行此调用。然后需要在收到数据后执行回调函数,否则变量将为空,代码将中断。OpenGraph JavaScript API可以很好地为您做到这一点

基本上,您需要异步进行调用,并将document.write()调用作为回调函数的一部分执行。因此,在完成身份验证和所有这些之后,请执行以下操作:

nick = arg1[]
id = arg2[]
and take it in the document.write() 

document.write("<param name='nick' value='" + nick + "'>\n");
document.write("<param name='id' value='" + id + "'>\n");
FB.api('/me', function(response) {
  nick = response.name;
  document.write("<param name='nick' value='" + nick + "'>\n");
});
FB.api('/me',函数(响应){
nick=response.name;
文件。写入(“\n”);
});

thx用于回复,但我确实尝试过,而且在使用alert()时也有效,但当我在代码中尝试时,我总是得到“Undefined”thx的帮助。我尝试的每一件事都是有效的,但我需要做的就是回调函数,你的回答让我想到了它我很高兴它让你想到了回调函数。。。这正是我想说的:)附言:我很确定你们接受答案会得到代表。。。你将来更有可能得到答案干杯,快乐编码!
    <button name="my_full_name" onclick="testbut()" value="My Name" />
<script language="javascript" type="text/javascript">
function testbut() {
        FB.api("/me",
                function (response) {
                    alert('Name is ' + response.name);
                });

    }
</script>
    function ShowMyName() {
        FB.api("/me", function (response) {
            document.jform.nick.value = response.name ; 
                });
}
FB.api('/me', function(response) {
  nick = response.name;
  document.write("<param name='nick' value='" + nick + "'>\n");
});