2013-11-11 3 views
4

Следующий код работает отлично в прошивкой 6.0.1 (с использованием IOS виртуальной клавиатуры, я нажал "Go" кнопку на поле ввода)<форма целевых = "_blank"> не работает в прошивкой 7.0.3

<html> 
    <body> 
     <form action="http://stackoverflow.com/" target="_blank"> 
      <input type="text" />  
     </form> 
    </body> 
</html> 

Но когда я попробовал тот же самый код на iOS 7.0.3, это вообще не работает. Без ответа после нажатия кнопки «Перейти» на клавиатуре iOS.

Если я удалю [target = "_ blank"] из тега формы, он работает правильно.

Я понятия не имею, в чем причина этой проблемы. У кого-то есть такая же проблема?

ответ

6

Всплывающие окна блокируются сафари iOS по умолчанию.

Отключить функцию блока с помощью настроек -> Safari -> Блокировать всплывающие окна.

0

Предполагая, что HTML вне вашего контроля, обходным путем является программное удаление свойства целевой формы. Реализовать следующее в вашем веб-просмотра делегата:

- (void)webViewDidFinishLoad:(UIWebView *)aWebView 
{ 
     NSString *script = @"for (i=0; i<document.forms.length; i++) { document.forms[i].target = null; }"; 
     [aWebView stringByEvaluatingJavaScriptFromString:script]; 
    } 
} 
0

Вот немного JQuery обходной путь я использовал, чтобы удалить атрибут target="_blank" КСН только на представить:

$('#searchform').submit(function(e) { 
    if(navigator.userAgent.match(/(iPod|iPhone|iPad)/i)) { 
    $(this).removeAttr('target'); 
    } 
}); 

Кажется, нет никакого лучшее решение, так как the solution to transit through a temporary a tag не работает на iOS 8+.

Смежные вопросы