Как я могу загрузить ссылки на веб-клип iOS в том же окне?

После загрузки веб-клипа с несколькими ссылками в нем, щелчок по ссылке запускает Mobile Safari вместо загрузки ссылки в том же окне. Есть ли способ предотвратить загрузку ссылок в Safari вместо экземпляра Webclip? Я пытаюсь смоделировать мобильное приложение, используя только PHP на моей локальной установке Apache.

2 ответа

Решение

Согласно документам Apple, в Mobile Safari всегда открываются ссылки на внешние страницы:

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

В дополнение к возможности использовать одну страницу для загрузки нового контента с помощью AJAX, вы можете использовать JavaScript self.location=URL; return false на гиперссылки, которые должны оставаться в приложении. Это можно добавить непосредственно в HTML-код или с помощью другого скрипта при загрузке страницы.

Если вы используете jQuery, я бы порекомендовал что-то вроде этого:

$('a:not([target])').click(function(){
    self.location = $(this).attr('href');
    return false;
});

Очевидно, что этот скрипт должен быть запущен после загрузки HTML, чтобы убедиться, что он действительно подключается к A элементы onClick событие.

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