Использование ссылок в полноэкранных веб-приложениях iOS - PullRequest
2 голосов
/ 18 февраля 2011

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

Есть ли способ (например, использование атрибута target привязки) оставаться в полноэкранном режиме при переходе на другую страницу? Или я должен просто бросить все в <iframe>?

Ответы [ 2 ]

5 голосов
/ 24 марта 2011

Вам нужно будет перехватить событие onclick, используя некоторый JavaScript.Например, вот что iWebKit делает с классом noeffect css, примененным к тегу <a>:

window.onload = function () {
    function fullscreen() {
        var a = document.getElementsByTagName("a");
        for (var i = 0; i < a.length;i++) {
            if (a[i].className.match("noeffect")) {
                // Does nothing
            }
            else {
                a[i].onclick = function () {
                    window.location = this.getAttribute("href");
                    return false;
                };
            }
        }
    }
};
3 голосов
/ 26 марта 2011

Всякий раз, когда в мобильном Safari возникает onclick, Safari выводит его из полноэкранного режима.Отправка форм останется в полноэкранном режиме, POST или GET.Если window.location установлен через javascript, он также останется в полноэкранном режиме.

Я предпочитаю делегирование для установки обработчика событий для каждой привязки.Вот пример jQuery:

$(window).click(handleClick);

function handleClick(e) {
    var target = $(e.target).closest('a');
    if( target ) {
        e.preventDefault();
        window.location = target.attr('href');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...