Facebook标签应用程序重定向

时间:2010-03-26 21:06:44

标签: facebook

我的Facebook Canvas Tab应用程序上有一个小的ajax表单。如果表单发布成功,没有验证错误,我想重新加载页面。

我知道要在Tab应用程序中导航,您需要确保所有链接都具有相对于画布应用程序URL的相对路径。我的所有链接都有。因此,后响应具有相对路径url。但我似乎无法以我想要的方式重新加载页面。

我尝试了以下三种方法但没有成功。

var form = document.createElement('form');
form.setAction(myurl);
document.getElementById('body').appendChild(form);
form.submit();

document.setLocation(myurl)

以及

function simulateClick(obj) {
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
    var canceled = !obj.dispatchEvent(evt);
    if (canceled) {
        // A handler called preventDefault
        console.log("canceled");
    } else {
        // None of the handlers called preventDefault
        console.log("not canceled");
    }
}

有没有不同的方法来解决这个问题?我的网址可能是错的(它与我在链接中使用的网址具有相同的相对性)吗?我可以使用FBJS为链接提出点击事件吗?

1 个答案:

答案 0 :(得分:0)

是的,你会想要使用AJAX方法。使用ajax.ondone获取成功或使用ajax.onerror获取错误。

function someFunction(page)
{

    // Declare a new FBJS AJAX object
    var ajax = new Ajax(); 
    ajax.responseType = Ajax.FBML;

 ajax.ondone = function(data) 
    { 
  document.setLocation(myurl);
    }
 ajax.onerror = function (data)
    {
          console.log(data);
    }

 var queryParams = {'param1' : page, 'param2' : 'Some Data'};
    ajax.post('http://yourURL.com/fbapp', queryParams);
 return false;
}