9

コンテキストを変更するときに、Facebook キャンバス アプリでアドレス バーの URL を更新できるようにしたいと考えています。たとえば、アプリのホーム URL がで、ユーザーがホーム画面の項目をクリックした場合、アドレス バーに表示される URL をまたはhttps://apps.facebook.com/myapp/に変更したいと思います。https://apps.facebook.com/myapp/1/https://apps.facebook.com/myapp/#1

通常、私のアプリは HTML5 のhistory.pushState(). 問題は、キャンバス アプリが iframe 内で実行され、親ウィンドウにアクセスできないことですpushState(iframe が apps.facebook.com と同じドメインではないため)。別の手法として、アドレスのハッシュ部分のみを変更する必要があります。つまりwindow.location.hash = "1"、これも同じ理由で iframe 内から変更することはできません。

を使用して、ページ全体をリロードして親ページの URL を変更することができます。

window.parent.location = "https://apps.facebook.com/myapp/1/"

ただし、これにより、親ページがリロードされ、かなりの秒数が費やされてから、iframe がリロードされます。全体として、ユーザーにとって非常に長くイライラする経験になります。

私が考えもしなかったこれを行う方法はありますか?

4

1 に答える 1