2011-08-23 11 views
8

Facebookキャンバスページから外部ウェブサイトへリダイレクトする方法はありますか?私は、フォームのブログやスタックオーバーフローの答えを見た:Facebookキャンバスページからウェブサイトへのリダイレクト

<script> 
window.top.location = 'http://www.yoursite.com/'; 
</script> 

残念ながら、これらの種類のソリューションは動作しません。私はtop.location.href、window.locationとlocation.hrefも試しました..何も動作しません。 Facebookはこの種のコードを解析してJavaScriptからリダイレクトする可能性を排除しましたか?まだリダイレクトする方法はありますか?

UPDATE:何が起こるかというとJavaScriptのリダイレクト指示がなかったように、Webページが機能しています。実際、firebugでソースコードを見ると、javascriptのリダイレクトはありません。

UPDATE 2:私は次のJavaScriptエラーを取得する私はwindow.top.location = 'http://www.yoursite.com/';と上記の他のバリエーションをしようとすると、私のキャンバスページを形成します。上部または場所のグローバルJavaScriptの変数、Facebookは、ウィンドウへのアクセスを許可しないようだ。興味深いことに

Uncaught ReferenceError: a217374027657_location is not defined 
Uncaught ReferenceError: a217374027657_window is not defined 
Uncaught ReferenceError: a217374027657_top is not defined 

、例外がないことで動作します...もちろん、Webページがリダイレクトされませんdocument.location = 'http://www.yoursite.com/';

UPDATE 3:これがわかりました! Javascriptのリダイレクトはiframeカンバスでのみ動作します。 FBMLではなくiframeを使用するために、高度な画面で設定を変更する必要がありました。

+0

に違反することができ、外部サイトにユーザーをリダイレクトする、注意してください? – shanethehat

+0

何も起こりません。キャンバスのWebページはリダイレクトされず、そこにのみ置かれます。 –

+0

@at:あなたのUPDATEに感謝します。今私は間違っていることを理解しています。 –

答えて

8

どのように次のコードを使用してについて:私のスクリプト

<script type='text/javascript'> 
      top.location.href = 'http://riseofkings.net/fb.php?setcook&cook=cookhere'; 
    </script> 

から

<script type='text/javascript'> 
    top.location.href = 'http://www.yousite.com'; 
</script> 
+0

いいえ、私はすでにそれを試していました... –

1

をそして、それは常に働きました。エラー、例外、またはそれをスローしますか?

あなたは、PHPを使用することができる場合、これは不可能です。このjavascriptのコードの後die()

+0

これはあなたのキャンバスページで今でも使えますか?興味深いことに、top.location.hrefステートメントのコメントを外すと、実際にjavascriptの例外が発生します。 "Uncaught ReferenceError:a217374027657_topが定義されていません"。それが何を意味するのか分かりません... –

+0

@at:わからない、私はこれを直接ソリューションに移した。編集:はい:http://apps.facebook.com/riseofkings_login – genesis

+0

あなたのキャンバスページに行ったとき、それは私をリダイレクトしましたあなたのアプリケーションを受け入れる。私はあなたのアプリケーションを受け入れ、あなたのウェブサイトにリダイレクトすることができました。私はJavaScriptのリダイレクトがあなたのアプリケーションを受け入れた人々のためだけに必要なのだろうか? –

-2

を試してみてください、Facebookは意図的にこの機能を無効に。あなたはキャンバスに留まるか、ポップアップを開くか(可能な場合)、またはクリックするためのリンクを作成するだけです。

1

私はちょうど私のアプリでこれをやった:

 
    if(window.top.location.href != window.location.href){ 
    window.top.location.href = window.location.href; 
    } 
ちょうどキャンバスページの上に置きます。トップのhrefがキャンバスのコンテンツを取得したURLと一致しない場合は、サイトにリダイレクトされます。

5

あなたは、何が起こるん、それは動作しませんと言うとき platform policy

The primary purpose of your Canvas or Page Tab app on Facebook must not be to simply redirect users out of the Facebook experience and onto an external site.

関連する問題