2012-03-12 92 views
0

Facebook API在Opera中不起作用: FB.Canvas.setSize - 不更改畫布大小。 FB.Canvas.getPageInfo - 不調用回調函數。Facebook API在Opera中不起作用

要重現:在Opera 打開http://apps.facebook.com/operafbbug/和,爲了比較,在瀏覽器(或Firefox,IE)

預期行爲:
畫布高度將改變爲1100,除了歌劇 當FB.Canvas .getPageInfo函數被調用並返回數據,這個頁面會顯示alert'info'。您將在所有瀏覽器中看到此警報,但Opera除外。

錯誤facebook中錯誤跟蹤: http://developers.facebook.com/bugs/188820761219553

+0

和所有的工作,如果我們禁用browser.js – skyman 2012-03-12 12:12:11

回答

1

從FB bug跟蹤引用自己:歌劇觸發一個異步加載事件有關:空白,這導致canvas_proxy IFRAME過早移除。 Opera因爲隱藏document.attachEvent而開始運行,以避免由腳本的IE分支(https://github.com/operasoftware/browserjs/issues/1)引起的另一個相關問題。

至於解決方法,嵌入Facebook的腳本之前做

document.attachEvent=function(){} 

應該工作作爲一種解決方法,但非常難看,可能不會保留在將來的工作。這需要通過Facebook解決(通過忽略有問題的加載事件,並且在知道加載的真實目標內容之前不移除IFRAME)或由Opera(通過確定什麼樣的競爭條件或時序陷入困境使得Opera引發意外的加載事件,儘管IFRAME正在導航到其他某個URL)。

Opera也許應該爲browser.js添加一個臨時解決方法。你可能應該完全忽略這個問題,並在Opera和/或Facebook排除它之前暫緩對Opera進行測試。

+0

我現在已經開發了一個browser.js的解決方法,並添加更多的信息到Facebook的跟蹤。我希望他們會發現它有用並做出迴應。 – hallvors 2012-03-13 09:20:36

相關問題