<form target =“_ blank”>无法在iOS 7.0.3中使用</form>

时间:2013-11-11 05:36:50

标签: javascript html ios tags ios7

以下代码在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”],那么它可以正常工作。

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

3 个答案:

答案 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 +上运行。