2012-04-24 96 views

回答

5

您需要将对象设置为WebViewUIDelegate,并在该对象中实施webView:createWebViewWithRequest:方法。

在您实现该方法时,需要打开一个包含单独的WebView的新窗口,然后告知其mainFrame加载URLRequest作为参数传递给该方法。

更新:

我看过你的代码。您需要将对象指定为网络视图的UIDelegate,因此请将[webView setUIDelegate:self]行添加到applicationDidFinishLaunching:

如何实现委托将是一个非常简单的例子:

- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request 
{ 
    NSUInteger windowStyleMask = NSClosableWindowMask | 
            NSMiniaturizableWindowMask | 
            NSResizableWindowMask | 
            NSTitledWindowMask; 
    NSWindow* webWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 800, 600) styleMask:windowStyleMask backing:NSBackingStoreBuffered defer:NO]; 
    WebView* newWebView = [[WebView alloc] initWithFrame:[webWindow contentRectForFrameRect:webWindow.frame]]; 
    [newWebView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable]; 
    [webWindow setContentView:newWebView]; 
    [webWindow center]; 
    [webWindow makeKeyAndOrderFront:self]; 
    [[newWebView mainFrame] loadRequest:request]; 
    return newWebView; 
} 
+0

你给我一个样品? – 2012-04-25 15:08:22

+0

你给我一个样本?我试过了,没有效果。 – 2012-04-25 15:21:45

+0

'[self stringByEvaluatingJavaScriptFromString:js];'在页面上使用javascript,删除''_blank'''。这种方法不好。 – 2012-04-25 15:26:58