以下代码在iOS 6.0.1中完美运行 (使用iOS虚拟键盘,我按下输入框上的“Go”按钮)
<html>
<body>
<form action="http://stackoverflow.com/" target="_blank">
<input type="text" />
</form>
</body>
</html>
但是当我在iOS 7.0.3上尝试完全相同的代码时,这根本不起作用。 在iOS键盘上按“开始”按钮后没有响应。
如果我从表单标记中删除[target =“_ blank”],那么它可以正常工作。
我不知道这个问题的原因是什么。 有没有人有同样的问题?
答案 0 :(得分:6)
默认情况下,Safari会阻止弹出窗口。
通过设置禁用阻止功能 - &gt; Safari - &gt;阻止弹出窗口。
答案 1 :(得分:0)
假设HTML不受您的控制,解决方法是以编程方式删除表单目标属性。在Web视图委托中实现以下内容:
- (void)webViewDidFinishLoad:(UIWebView *)aWebView
{
NSString *script = @"for (i=0; i<document.forms.length; i++) { document.forms[i].target = null; }";
[aWebView stringByEvaluatingJavaScriptFromString:script];
}
}
答案 2 :(得分:0)
这是一个小jQuery的解决方法,我以前只在iOS上删除了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 +上运行。