gpt4 book ai didi

javascript - 在 Firefox 中调用方法 Modal ContentWindow.postMessage 的权限被拒绝

转载 作者:行者123 更新时间:2023-11-28 08:28:58 25 4
gpt4 key购买 nike

我正在与 YouTube Data API v3 合作。 Google 建议使用以下方式加载库:

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

它工作正常,但是当我将这样的脚本加载到 Firefox 的模式窗口中时(必须是这样。我无法控制 Sitecore 调用我的小部件的方式),它会失败:

错误:https://accounts.google.com权限被拒绝调用方法 ModalContentWindow.postMessage

它来自 Google 的 client.js 在加载时调用的内部回调,即使我省略 ?onload 部分也是如此。

加载到独立选项卡中工作正常。 IE 和 Chrome 都表现得很好。

有没有好的方法让它在 FF 模态窗口中工作? (如果重要的话,我正在运行 27.0.1)

更新:我通过直接调用 YouTube Data API HTTP 端点解决了这个问题。我仍然想知道这是怎么回事postMessage() thingy在 FF 的模态窗口中,以及 Google client.js 的作者是否知道它。

最佳答案

主要问题是Firefox有capability.policy.default.Window.postMessage.get策略,但没有capability.policy.default.ModalContentWindow.postMessage.get策略。有两种方法可以解决这个问题。

  • 添加 Firefox pref("capability.policy.default.ModalContentWindow.postMessage.get", "allAccess");
  • 不是将脚本加载到模态窗口中,而是直接将其放入 iframe 中。 iframe 将具有 Window 类。
顺便说一句,我在 FF28 中遇到了这个问题。在 FF31 中一切正常。

关于javascript - 在 Firefox 中调用方法 Modal ContentWindow.postMessage 的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22073611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com