«Ориентация устройства» в Firefox?

1

Я работаю с "deviceorientation" на моем ноутбуке, а пример jsfiddle, похоже, отлично работает в Chrome, но не отвечает на него Fire Fox. Я думаю, что строка 15 JS не работает каким-то образом...

window.addEventListener('deviceorientation', devOrientHandler, false);

Версия MozOrientation в строке 18, похоже, не поднимает слабину

window.addEventListener('MozOrientation', mozDevOrientHandler, false);

Только что обновленный Firefox. И никаких изменений. Я попытался протестировать на рабочем столе и (неудивительно), что на машине нет необходимых акселерометров/датчиков, поэтому скрипка не работает ни на одном браузере на этом компьютере. Я просматривал вопросы, читая спецификации w3c, поддержка MDN, и я до сих пор не могу ее получить.

Кто-нибудь знает, если это проблема с Firefox? Неужели я испортил настройки или что-то еще? Буду признателен за любую оказанную помощь. Любые идеи относительно того, почему этот пример jsfiddle не работает в Firefox? Примечание: пример "зеленый шар" в ссылке MDN выше также не работает на FF. Первый раз задаем вопрос о SO.

Спасибо!

Изменить: я должен уточнить, что jsfiddle - лучший пример, который я мог найти, и НЕ является моим кодом. Я считаю, что это было из HTML5rocks.com, но я не могу найти этот источник.

  • 0
    OT: Вы должны помнить о том, чтобы включить в ваш CSS версию перспективы, не относящуюся к webkit, для других браузеров.
  • 0
    Спасибо за вашу помощь @null!
Теги:
firefox

1 ответ

1
Лучший ответ

В настоящее время Firefox не публикует события DeviceOrientation на любой платформе Desktop. Ваш обработчик событий не запускается в Firefox просто по той причине, что API не включен в своих сборках браузера Desktop.

С другой стороны, браузеры на основе хрома активировали события DeviceOrientation с некоторыми важными оговорками. Хромированные браузеры обычно возвращают события DeviceOrientation последовательно на Mac OS X из-за общей доступности аппаратных датчиков гироскопа и акселерометра, доступных на компьютерах Apple. Кроме того, браузеры на основе хрома сообщают о значении event.alpha как undefined из-за отсутствия компаса или магнитных датчиков, доступных для правильного вычисления.

Ситуация в мобильных браузерах намного лучше и, возможно, является главной целью этого API. Все основные мобильные браузеры (Safari on iOS, Chrome/Opera/Firefox на Android) поддерживают это событие в своей не префиксной форме, то есть window.addEventListener('deviceorientation', function(event) { /* ... */ }, false).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню