RT, dalam WebView di bawah OSX (bukan iOS), apabila memuatkan halaman web html, tetingkap js.showModalDialog tidak sah dan tetingkap tidak boleh muncul Apabila memuatkan halaman web yang sama dalam Safari, terdapat respons ada yang melakukan sesuatu yang serupa?
Kod adalah seperti berikut:
- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request{
NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300) styleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask backing:NSBackingStoreBuffered defer:YES];
[window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
WebView *webView = [[WebView alloc] init];
[webView setFrameLoadDelegate:self];
window.contentView = webView;
[webView.mainFrame loadRequest:request];
[window makeKeyAndOrderFront:self];
return webView;
}
- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request{
return [self webView:sender createWebViewWithRequest:request];
}
- (void)webViewRunModal:(WebView *)sender{
[sender.window makeKeyAndOrderFront:self];
}
- (void)webViewShow:(WebView *)sender{
[sender.window makeKeyAndOrderFront:self];
}
- (void)webViewClose:(WebView *)sender{
[sender.window close];
}
歡迎選擇我的課程,讓我們一起見證您的進步~~
Adalah lebih baik untuk tidak menggunakan showModalDialog Lebih baik menukarnya kepada p. Saya tidak pernah menggunakan paparan web osx, tetapi semasa saya melakukan pembangunan Android pada masa lalu, paparan web tidak menyokong pop timbul. tetingkap modal. Saya hanya menukarnya kepada p. Saya tidak tahu. Adakah ini sebab mengapa webview dalam osx tidak muncul
Selepas menyahpepijat untuk masa yang lama, saya akhirnya menyelesaikannya. Sila berikan kod untuk memberi idea kepada orang lain.
#pragma -mark -WebView Delegate
- (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request{
NSUInteger windowStyleMask = NSClosableWindowMask|NSMiniaturizableWindowMask|NSTitledWindowMask;
_webWindow = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300) styleMask:windowStyleMask backing:NSBackingStoreNonretained defer:YES];
[_webWindow setReleasedWhenClosed:NO];
WebView* newWebView = [[WebView alloc] initWithFrame:[_webWindow contentRectForFrameRect:_webWindow.frame]];
[newWebView setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
[[newWebView mainFrame] loadRequest:request];
[_webWindow setContentView:newWebView];
[_webWindow center];
[_webWindow makeKeyAndOrderFront:nil];
return newWebView;
}
- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request{
return [self webView:sender createWebViewWithRequest:request];
}
- (void)webViewRunModal:(WebView *)sender{
[sender.window makeKeyAndOrderFront:self];
}
- (void)webViewShow:(WebView *)sender{
[sender.window makeKeyAndOrderFront:self];
}
- (void)webViewClose:(WebView *)sender{
[sender.window close];
}