Webview:区分"在Popup中打开#34;和"在新标签中打开"

时间:2014-04-04 19:20:53

标签: macos cocoa webview popup

我的窗口中有一个WebView,它加载了一些HTML,我想知道,每当我点击创建窗口的链接时,无论是弹出窗口还是“新标签”链接(即{{1} target="_blank"标记中的}}。

所以这是我的代码的一些部分

课程初始化时:

a

在同一个班级中,代表的实施:

[mainWebView setUIDelegate:self];
[mainWebView setPolicyDelegate:self];

因此,无论何时创建新窗口(弹出窗口或newtab链接),都会调用- (WebView*)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request { NSLog(@"The request is %@", request); return sender; } - (void)webView:(WebView *)webView decidePolicyForNewWindowAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request frame:(NSString *)frame decisionListener:(id<WebPolicyDecisionListener>)listener { NSLog(@"New window!"); } 回调,这是正常的。但是createWebViewWithRequest永远不会被调用,无论它是什么类型的链接。

似乎有一个人here和我有同样的问题,但我仍然找不到任何解决办法。

1 个答案:

答案 0 :(得分:0)

对我而言,decidePolicyForNewWindowAction:适用于target="_blank"个链接。如果您显示更多代码(最重要的是 - 示例项目),我会尝试将其与我的版本进行比较(当然,如果您仍然需要这个)。 :)