在iOS 7.0.3中不能使用<form target =“_ blank”>

以下代码在iOS 6.0.1中完美运行(使用iOS虚拟键盘,我在input框上按下“Go”button)

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

但是当我在iOS 7.0.3上尝试完全相同的代码时,这根本不起作用。 按下iOS键盘上的“Go”button后没有任何反应。

如果我从表单标签中删除[target =“_ blank”],那么它工作正常。

我不知道这个问题的原因是什么。 有没有人有同样的问题?

Safari浏览器默认阻止popup窗口。

通过设置 – > Safari – >阻止popup窗口来禁用块function。

假设HTML不在您的控制之内,解决方法是以编程方式删除表单目标属性。 在你的web view委托中实现以下内容:

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

这里是一个小的jQuery解决方法,我只用于在iOS上删除target="_blank"属性,在提交时:

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

看起来没有更好的解决scheme,因为通过临时标签传输的解决scheme在iOS 8+上不起作用。