0

我正在使用FB Graph api在用户的墙上发布我在墙上发布的功能如下:

 function PostToWall()
 {

      var mymessage = 'my message';
      var mypic = 'http://myapp/a.jpg';
      var mylink = 'http://www.myapp.com';
      var myname = 'myApp';
      var mydesc = 'my desc .';
      FB.api('/me/feed', 'post', { message: mymessage, picture: mypic, link: mylink, name: myname, description: mydesc }, function (response) {
            if (!response || response.error) {
                       alert(response.error.message);
            } else {
                        alert('Post ID: ' + response.id);
             }
      });
      // alert('Do you want to continue ? ');
 };

它在 crome 中运行良好,但是当我在 firefox 中使用它时,它会提示Unknown error from alert(response.error.message);.and 在 firefox 错误的错误控制台中是

Error: uncaught exception: [Exception... "prompt aborted by user"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: resource://gre/components/nsPrompter.js :: openTabPrompt :: line 468"  data: no]

我发现解决方法是在函数结束前提示用户看到最后一行alert('Do you want to continue ?'); . 当我编写此警报时,它在 Firefox 中也可以正常工作,但我不想提示用户任何消息。可能是什么问题,解决方案是什么?

我正在使用 Firefox 5.0 。我的操作系统是windows 7。

PostOnWall 函数是从另一个函数调用的,如下所示:

function f(){

     PostToWall();
    ...
    ...
    //code to click a submit button
}
4

1 回答 1

3

我编写了代码来单击回调处理程序中的提交按钮,如下所示:

function PostToWallCallBackHandler(response) {
     if (!response || response.error) {
         alert(response.error.message);
     } else {
          document.getElementById('fbSubmit').click();
     }
 }
 function PostToWall(mymessage,mypic,mylink,myname,mydesc,callbackHandler) {
     FB.api('/me/feed', 'post', { message: mymessage, picture: mypic, link: mylink, name: myname, description: mydesc },function (response){callbackHandler(response);} );
 };

它适用于 crome 和 firefox、safari 和 IE 9。

于 2012-06-06T09:20:05.410 回答