Получение непоследовательных результатов от window.innerWidth в Mobile Safari

Я использую этот javascript для определения ширины браузера:

$(document).ready(function(){ var width = window.innerWidth; });

Кажется, он дает непоследовательные результаты. Здесь я создал рабочую кодировку. неоднократно обновляя полностраничный просмотр в мобильном Safari. Я получил оба следующих результата:

ios9 Mobile Safari window.innerWidth ios9 Mobile Safari window.innerWidth

Он перескакивает назад и вперед непоследовательно и, кажется, усугубляется большим размером страницы (следовательно, все изображения). Иногда он возвращает только один результат, пока я не убью приложение и не открою его.

Есть ли лучший способ получить ширину браузера?

Примечания:

  • Я добавил это в голову: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
  • Использование $(window).width() на самом деле не вариант для меня, потому что он не учитывает полосы прокрутки
  • Я знаю, что могу помещать js в функцию тайм-аута, но это решение проблематично для меня, так как я сохраняю результат в переменной, которую я использую в разных местах на веб-сайте.
  • Я использую iPhone 5 под управлением iOS 9.2

Спасибо!

Ответы

Ответ 1

Safari получает несовместимые ширины в ванильном javascript из-за разрешения. JQuery обычно стандартизовал это. Попробуйте использовать:

$(window).width()

Это должно дать вам правильную ширину.