js重定向,如果不在fb iframe中

时间:2012-07-20 14:28:09

标签: javascript facebook redirect

我想将我服务器上的Facebook应用程序标签的所有流量直接重定向到我的Facebook应用程序。因此,如果用户位于Facebook iframe内或我的网页上,请使用以下代码进行检查:

<!-- language: lang-js -->
function referrerIsFacebookApp() {
    if(document.referrer) {
        return document.referrer.indexOf("facebook.com") !== -1;
    }
    return false;
}

if (!referrerIsFacebookApp()) {
    top.location.replace("https://www.facebook.com/bommelME/app_264697733636385");
};

如果我用浏览器打开页面,一切正常。但是,如果我链接到此页面并打开链接,重定向将无法正常工作。任何提示?

2 个答案:

答案 0 :(得分:7)

使用window.top检测您的应用是否在iFrame中。试试这个。

if (window!=window.top) { 
   /* I'm in a frame! */ 
   window.location = "https://www.facebook.com/bommelME/app_264697733636385";
}

干杯。

答案 1 :(得分:1)

我认为您应该检查window.parent对象而不是document.referrer,因为该页面可以从您说过的另一个页面引用,但不会通过iframe包含