Можно ли программно показывать адресную строку в Chrome для Android?

По умолчанию он отображается только при нажатии кнопки меню устройства и при перелистывании страницы (см. GIF ниже, когда сенсорный маркер красный). Можно ли отобразить строку URL с помощью JavaScript?

GIF показывает скрытие / отображение строки URL в Chrome для Android

2 ответа

Решение

Решение

Это возможно только при вводе пользователем из-за ограничений полноэкранного API. Смотрите демо.

var p;

function showURLBar() {
    p = [window.pageXOffset, window.pageYOffset];
    document.documentElement.webkitRequestFullscreen();
    setTimeout(function () {
        document.webkitExitFullscreen();
        setTimeout(function () {
            scrollTo(p[0], p[1]);
        }, 300);
    }, 300);
}

Важные заметки

  • Эта функция протестирована только в Chrome 35.0.1916.141, на Samsung Galaxy S4 под управлением Android 4.4.2.
  • На других устройствах может потребоваться увеличить время ожидания.
  • Чтобы избежать ошибок в других браузерах, используйте кросс-браузерную реализацию функций полноэкранного API вместо функций webkit.
  • Это своего рода хак, поэтому он может стать неэффективным в будущих версиях Chrome.
  • Некоторое отставание можно увидеть из-за тайм-аута 600 мс, но без него функция была бы неработоспособна.
  • Я проверил некоторые другие подходы без успеха. Изменение всего URL с помощью window.location заставляет адресную строку снова появляться, но выход / перезагрузка страницы является нежелательным побочным эффектом. Только изменение window.location.hash или используя window.history тоже не помогает, даже если URL изменен. Ни один из window.scrollBy, window.scrollTo, window.scrollTop помогает.

Под словом "устройство" я понимаю, что вы имеете в виду мобильное устройство. Я тоже боролся с этим и просто использовал ярлык на странице с рабочего стола устройства. Тогда вы получите полный экран без адресной строки.

Другие вопросы по тегам