我的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为链接提出点击事件吗?
答案 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;
}