我正在我的笔记本电脑上使用“deviceorientation”和一个示例 jsfiddle似乎在 Chrome 中工作正常,但在 Firefox 中没有响应。我认为 JS 第 15 行无法正常工作...
window.addEventListener('deviceorientation', devOrientHandler, false);
第 18 行的 MozOrientation 版本似乎并没有弥补这一不足
window.addEventListener('MozOrientation', mozDevOrientHandler, false);
刚刚更新了 Firefox。并且没有变化。我尝试在桌面上进行测试,(毫不奇怪)机器似乎没有必要的加速计/传感器,因此 fiddle 无法在该机器上的任何浏览器上工作。我一直在搜索问题,阅读 w3c 规范,MDN support我还是没明白。
有人知道这是否是 Firefox 的问题吗?是我把设置弄乱了还是怎么的?任何帮助深表感谢。关于为什么 jsfiddle 示例无法在 Firefox 上运行的任何想法? 注意:上面 MDN 链接中的示例“绿球”也不适用于 FF。第一次问关于SO的问题。
谢谢!
编辑:我应该澄清一下,jsfiddle 是我能找到的最好的例子,而不是我的代码。我相信它来自 HTML5rocks.com,但我找不到该来源。
最佳答案
在撰写本文时,Firefox 不会在任何桌面平台上公开 DeviceOrientation
事件。您的事件处理程序在 Firefox 中不会被触发,仅仅是因为在其桌面浏览器版本中未启用 API。
另一方面,基于 Chromium 的浏览器启用了 DeviceOrientation 事件,但有一些重要的注意事项。由于 Apple 计算机中普遍提供陀螺仪 + 加速计硬件传感器,基于 Chromium 的浏览器通常仅在 Mac OS X 上一致地返回 DeviceOrientation 事件。此外,基于 Chromium 的浏览器将 event.alpha
值报告为 未定义
,因为没有指南针或磁传感器可用于正确计算该值。
移动浏览器上的情况要好得多,可以说是此 API 的主要目标。所有主要移动浏览器(iOS 上的 Safari、Android 上的 Chrome/Opera/Firefox)均以无前缀形式支持此事件,即 window.addEventListener('deviceorientation', function(event) {/* ... */},假)
。
关于javascript - Firefox 中的“设备方向”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22524954/