2010-03-26 75 views
0

我在我的Facebook畫布選項卡應用程序上有一個小ajax窗體。如果它的表單發佈成功,沒有驗證錯誤,我想重新加載頁面。Facebook選項卡應用程序重定向

我知道,要導航一個選項卡應用程序內部,您需要確保所有鏈接都具有相對於您的畫布應用程序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

是的,你會想要使用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; 
} 
相關問題