4

サーバーの[Facebookアプリ]タブに向かうすべてのトラフィックを直接Facebookアプリにリダイレクトしたい。したがって、ユーザーがFacebook iframe内にいるか、私のWebページにいるかどうかを次のコードで確認します。

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

ブラウザでページを開くと、すべてが正常に機能します。しかし、このページにリンクしてリンクを開くと、リダイレクトが機能しません。ヒントはありますか?

4

2 に答える 2

7

window.topを使用して、アプリがiFrameにあるかどうかを検出します。これを試して。

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

乾杯。

于 2012-07-20T14:41:36.263 に答える
1

あなたが言ったようにページが別のページから参照される可能性があるが、iframeに含まれていないため、window.parentオブジェクトの代わりにオブジェクトをチェックする必要があると思いますdocument.referrer

于 2012-07-20T14:38:01.477 に答える