1

我正在使用YouTube Data API v3。谷歌建議使用加載庫:權限被拒絕調用方法在Firefox中使用ModalContentWindow.postMessage

<script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"> 

它工作正常,但是當我加載喜歡這個劇本到在Firefox模態窗口(它一定是這樣,我無法控制我的窗口小部件的調用方式。通過Sitecore的),它失敗:

錯誤:權限被拒絕https://accounts.google.com調用方法ModalContentWindow.postMessage

它來自內部的回調中,谷歌的client.js調用加載時即使我省略?onload部分。

工作正常加載到一個獨立的選項卡。 IE和Chrome都能很好地完成任務。

有沒有一種很好的方式使它在FF模式窗口中工作? (如果有問題,我正在運行27.0.1)

更新:我通過直接調用YouTube Data API HTTP端點來解決此問題。我仍然想知道FF的模式窗口中的那個postMessage() thingy是怎麼回事,以及Google的client.js的作者是否知道它。

回答

0

最主要的問題是Firefox對capability.policy.default.Window.postMessage.get有策略,但它沒有策略capability.policy.default.ModalContentWindow.postMessage.get。 有兩種方法可以解決這個問題。

  • 添加pref爲Firefox pref(「capability.policy.default.ModalContentWindow.postMessage.get」,「allAccess」);
  • 而不是將腳本加載到模態窗口直接放在iframe中。 iframe將有類窗口。
順便說一句我在FF28中遇到過這個問題。在FF31中一切正常。