2012-04-24 14 views
2

webViewはtarget = " _blank "を追加するためのハイパーリンクを開くことができません。ココア: `target =" _blank "を追加するハイパーリンクを持つwebViewは開けません

私はwebviewのようなアプリケーションを開発していますが、私には1つの問題があります。現在のアプリケーションで新しいウィンドウでリンクを開く方法 - サファリではないのですか?

ありがとうございました。

enter image description here

@Rob Kenigerコードがrunning.whyされていませんか?

答えて

5

WebViewUIDelegateとしてオブジェクトを設定し、そのオブジェクトにwebView:createWebViewWithRequest:メソッドを実装する必要があります。

このメソッドの実装では、別のWebViewを含む新しいウィンドウを開き、そのmainFrameに、メソッドにパラメータとして渡されたURLRequestをロードするように指示する必要があります。

アップデート:私はあなたのコードを見てきました

。オブジェクトをWebビューの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

あなたは私のサンプルを与えますか? –

+0

あなたは私にサンプルをくれますか?私は試しました、効果はありません。 –

+0

'[self stringByEvaluatingJavaScriptFromString:js];'ページでjavascriptを使用し、 '' _blank "'を削除します。このメソッドはうまくいかないです。 –

関連する問題