目标 =“_blank” 在 IOS 中不起作用

Posted

技术标签:

【中文标题】目标 =“_blank” 在 IOS 中不起作用【英文标题】:target ="_blank" not working in IOS 【发布时间】:2012-11-08 09:16:47 【问题描述】:

我正在使用 phonegap/cordova 2.1.0 开发移动应用程序 (ios/android) UI。我想在新窗口/页面中打开锚标记的 href 属性中给出的链接。我试过了:

target="_blank"

但它在 IOS 中不起作用。任何解决方法可用?谢谢

【问题讨论】:

您希望它在哪里打开?如果您在 Phonegap 中,没有任何新窗口/选项卡? 根据 [Safari html 文档][1],这应该可以工作。你能发布你的代码吗? [1]:developer.apple.com/library/safari/#documentation/… 在phonegap中,我不能打开另一个窗口/标签吗? 【参考方案1】:

如果你可以使用 JQuery :

<a href="http://link.com" rel="external">link</a>

javascript

$(document).ready(function()
    $('a[rel="external"]').click(function() 
        window.open($(this).attr('href'));
        return false;
    );
);

Sources

【讨论】:

我还没有找到可以让它在 iOS 中运行的 window.open 参数。它总是在我的 web 视图中打开。 (Phonegap Build 3.1.0) 直到我将 添加到 config.xml 然后它可以在 iOS 中使用。【参考方案2】:

不要碰你的 javascript 文件,只需在你的 MainViewController.m 文件中写下这段代码,在 @end 标记之前。我和你一样使用cordova框架。

(BOOL) webView:(UIWebView*)WebView 应该StartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType

NSString *url = request.URL.absoluteString;

NSString *pathExtension = [[url lastPathComponent] pathExtension];

if([pathExtension isEqualToString:@"pdf"])

[[UIApplication sharedApplication] openURL:request.URL];

return NO;

else if([[request.URL host] isEqualToString:@"www.yoururl.com"])

[[UIApplication sharedApplication] openURL:request.URL];

return NO;

return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];

在这里您可以查看两种不同的说明,所有 pdf 文件都将在新窗口中打开,并且在 request.URL 之后您需要写入您的 url。如果你 www.yoururl.com/folder1/folder2 你不需要写所有的 url,因为也许你会有很多不同的 url。您只需要从您的网站编写 www.yoururl.com。

希望它对你有帮助,这对我有用。 =)

【讨论】:

以上是关于目标 =“_blank” 在 IOS 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

静态快速​​操作在目标 c iOS 中不起作用

iOS 目标 c 框架在模拟器中不起作用

Unwind Segue 在 iOS 8 中不起作用

javascript window.open 在 safari 和 chrome 中不起作用

导航在目标 c 中不起作用

WKWebview 在 macOS 上的默认浏览器中打开目标 =“_blank”链接