4

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

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

4

3 回答 3

7

默认情况下,Safari iOS 会阻止弹出窗口。

通过设置 -> Safari -> 阻止弹出窗口禁用阻止功能。

于 2013-11-27T07:54:57.560 回答
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];
    }
}
于 2015-03-02T10:10:45.530 回答
0

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

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

似乎没有更好的解决方案,因为通过临时a标签的解决方案在 iOS 8+ 上不起作用。

于 2015-09-25T09:03:07.573 回答