2010-03-26 4 views
0

У меня есть небольшая форма ajax на моем приложении Facebook Canvas Tab. Если он успешно заполняет форму, никаких ошибок проверки, я хочу перезагрузить страницу.Facebook Tab Application Redirect

Я знаю, что для навигации внутри приложения Tab вам нужно убедиться, что все ваши ссылки имеют относительный путь относительно вашего URL-адреса приложения canvas. Который имеет все мои ссылки. Поэтому ответ post имеет относительный 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"); 
    } 
} 

Есть другой способ подойти к этому? Может ли мой url быть неправильным (он имеет ту же относительность, что и URL-адрес, который я использую в ссылках)? Могу ли я увеличить событие click для ссылки с помощью FBJS?

ответ

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; 
}