2010-03-26 5 views
0

J'ai un petit formulaire ajax sur mon application Facebook Canvas Tab. Si le formulaire affiche avec succès, aucune erreur de validation, je veux recharger la page.Facebook Tab Application Redirect

Je sais que pour naviguer à l'intérieur d'une application d'onglet, vous devez vous assurer que tous vos liens ont un chemin relatif par rapport à votre URL d'application de canevas. Quels sont tous mes liens. Par conséquent, la réponse post a une URL de chemin relatif. Mais je n'arrive pas à recharger la page de la manière que je veux.

J'ai essayé les trois méthodes suivantes sans succès.

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

et

document.setLocation(myurl)

et aussi

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

est-il une autre façon d'aborder ce sujet? Mon URL pourrait-elle être fausse (elle a la même relativité que l'URL que j'utilise dans les liens)? Puis-je déclencher un événement click pour un lien en utilisant FBJS?

Répondre

0

Oui, vous voudriez utiliser une approche AJAX. Utilisez ajax.ondone pour le succès ou ajax.onerror pour l'erreur.

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