Обнаружение, если адресная строка отображается в браузере iPhone

Я пытаюсь обнаружить в будущем и не зависящий от устройства способ, когда отображается адресная строка в браузере iPhone. Это панель инструментов, которая отображается вверху, чтобы отобразить URL-адрес. Его можно скрыть, позвонив:

window.scrollTo(0, 0)

То, что я хотел бы сделать, обнаруживает, когда оно отображается (таким образом уменьшая доступное пространство просмотра) и устанавливая таймер, чтобы скрыть его снова или позже. Все чаще, чем это, и это будет очень неприятно, так как пользователи не смогут попасть в адресную строку.

Я пробовал проверять window.pageYOffset, к сожалению, это возвращает ноль, если какая-либо часть строки url видна.

Я не хочу жестко кодировать любые измерения на iPhone и проверять их на текущий размер видового экрана. Он слишком хрупкий.

Кто-нибудь знает решение здесь?

Ответ 1

Свойство window.innerHeight - это то, что вы ищете. Это высота фактического содержимого на экране. Это значительно меньше, когда панель инструментов наверху видна, потому что там меньше места для контента. Есть небольшая проблема, которую я не могу представить на моем iPhone 4 - window.innerHeight иногда возвращает на 3 пикселя меньше в определенных положениях прокрутки экрана.

Я создал для вас пример, который делает больше или меньше того, что вы просили, по крайней мере, вы должны начать:

http://jsfiddle.net/rUSEb/show/light (проверьте его на своем iphone).