Тег href не открывается в новом веб-просмотре или в мобильном сафари

Я работаю с компанией, которая делает приложения для iPhone, и они пытаются отобразить веб-страницу в веб-представлении, которым они управляют. Поэтому все, что я им даю, - это URL-адрес, и они выбирают его с определенными параметрами, чтобы настроить страницу, которую я возвращаю. (Моя страница может отображаться в iFrame или с другой разметкой, о которой я не знаю.) Проблема в том, что на этой веб-странице есть ссылки, которые открываются в веб-обзоре, когда предполагается, что эти ссылки будут открыты в мобильном устройстве. Сафари или в другом веб-просмотре. Я попытался изменить цель тега href на _blank, _self, _parent, а также _top но безрезультатно.

Если не понятно, я не могу контролировать приложение. Так что я не могу попробовать что-то вроде [UIApplication openURL:[NSURL URLWithString:myLink]], У меня есть только контроль над содержимым страницы, которую я возвращаю.

Какие-либо предложения?

1 ответ

Чтобы оставаться в пределах одного и того же веб-просмотра, вы не должны использовать href. использование ontouchstart событие вместоПример:

<a ontouchstart="javascript:window.location = '../abc.html';">Click here</a>

Некоторое время назад я использовал приведенную ниже функцию javascript, чтобы гарантировать, что мои hrefs были преобразованы в события ontouchstart, только при просмотре на iPad.

function clearLinks()
{
var isiPad = navigator.userAgent.match(/iPad/i) != null;
if(isiPad)
    {
    var obj = document.getElementById('body').getElementsByTagName('a');
    for(var i =0; i<obj.length; i++)
          {
            var url = obj[i].getAttribute('href');
                if(url.indexOf("javascript")==-1)
                {
                obj[i].setAttribute('ontouchstart', "window.location='" + url + "'");
                obj[i].setAttribute('href', 'javascript:function(){return false;}');
                }
            }
     }

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