自 Chrome 62(在 Android 上)以来,我遇到了无法在跨源 iframe 中访问 devicemotion 事件的问题。
为了解决这个问题,在不使用 postMessage 将 devicemotion 事件传递给 iframe 的情况下,我使用它自己的位置从 iframe 打开一个新选项卡。但是,新选项卡不会接收任何设备运动事件。将 url 复制粘贴到手动打开的选项卡中确实会导致触发 devicemotion 事件。
我假设新选项卡以某种方式被沙盒化,但我还没有找到任何方法来解决这个问题。如何打开没有此限制的新选项卡?如果那不可能,是否有任何其他方法可以绕过 iframe 的跨域限制?
我无权访问父页面。
最佳答案
我遇到了同样的问题,但通过监听 top.window 而不是 window 解决了这个问题。
top.window.addEventListener('devicemotion', myFunction, false);
希望这对您有所帮助。
关于javascript - 设备运动事件未在从跨源 iframe chrome 62 打开的选项卡中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466138/