2012-03-12 17 views
0

Facebook APIはOperaでは動作しません。 FB.Canvas.setSize - キャンバスのサイズを変更しません。 FB.Canvas.getPageInfo - コールバック関数を呼び出さない。再現するOperaでFacebook APIが動作しない

: オペラで開くhttp://apps.facebook.com/operafbbug/と、比較するために、クロム(またはFirefox、IE)で

予想される動作:
キャンバスの高さは、ときFB.Canvasオペラ を除いて、1100年に変更されます.getPageInfo関数が呼び出され、データを返すと、このページは警告 'info'を表示します。もう一度Operaを除いて、このアラートがすべてのブラウザで表示されます。 Facebookのバグトラッカーで

バグ: http://developers.facebook.com/bugs/188820761219553

+0

私たちがbrowser.jsを無効にした場合はすべて – skyman

答えて

1

FBのバグトラッカーから自分自身を引用:Operaはおよその非同期ロード・イベントを発生させます:空白canvas_proxy IFRAMEになり途中で削除されています。 Operaはdocument.attachEventを隠して、スクリプトのIEブランチ(https://github.com/operasoftware/browserjs/issues/1)によって引き起こされる別の関連する問題を避けるため、これに実行を開始します。回避策については

、Facebookのスクリプトを埋め込む前

document.attachEvent=function(){} 

を行うと回避策として動作するはずですが、非常に醜い、おそらくは、将来的にを働き続けるありません。これは、フェイスブック(問題のあるロードイベントを無視し、実際のターゲットコンテンツがロードされるまでIFRAMEを削除しないでください)またはOperaによって(競合状態やタイミングの悪影響がオペラを予期しないロードイベントにIFRAMEは他のURLにナビゲートされています)。

Operaはおそらくbrowser.jsに一時的な回避策を追加するべきです。おそらくこの問題を無視し、OperaやOperaがFacebookのソートを行うまで、Operaのテストを止めておくべきでしょう。

+0

私はbrowser.jsの回避策を開発し、Facebookのトラッカーにいくつかの情報を追加しました。私は彼らがそれを見つけて反応することを願っています。 – hallvors