目标 =“_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>
$(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) 直到我将不要碰你的 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 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章