代码之家  ›  专栏  ›  技术社区  ›  zznq

Facebook Tab应用程序重定向

  •  0
  • zznq  · 技术社区  · 15 年前

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

    我知道,要在选项卡应用程序内部导航,您需要确保所有链接都具有与画布应用程序url相对的相对路径。我所有的链接都有。因此,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");
        }
    }
    

    有没有其他方法可以解决这个问题?我的网址可能是错误的(它与我在链接中使用的网址具有相同的相对性)?我可以使用FBJS引发一个链接的点击事件吗?

    1 回复  |  直到 15 年前
        1
  •  0
  •   codeisforeva    14 年前

    是的,您可能希望使用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;
    }
    
    推荐文章