1

自 Chrome 62(在 Android 上)以来,我遇到了无法在跨域 iframe 中访问 devicemotion 事件的问题。

为了解决这个问题,我不使用 postMessage 将 devicemotion 事件传递给 iframe,而是使用它自己的位置从 iframe 打开一个新选项卡。但是,新选项卡不会接收任何设备运动事件。将 url 复制粘贴到手动打开的选项卡中会导致触发 devicemotion 事件。

我假设新选项卡以某种方式被沙盒化,但我还没有找到任何方法来解决这个问题。如何打开没有此限制的新标签?如果这不可能,有没有其他方法可以绕过 iframe 的跨域限制?

我无权访问父页面。

4

1 回答 1

1

我有同样的问题,但通过听 top.window 而不是 window 解决了它。

top.window.addEventListener('devicemotion', myFunction, false);

希望这可以帮助。

于 2017-11-30T14:08:02.660 回答