在应用程序中嵌入WebView
并在其中加载html页面时,JavaScripts alert()
/ confirm()
/等。不工作。
在文档中查看,WebPreferences
中没有相关设置 - 看起来唯一相关的内容是WebUIDelegate
s -(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:
等等......但实现这些设置意味着编写自定义这些对话框看起来很冗余......
我不需要自定义WebUIDelegate
,并希望继续使用默认值。
肯定有一些方法可以简单地启用alert()
等,但是如何?
答案 0 :(得分:12)
以下是执行基本工作的示例代码。但是,您需要确保将此对象注册为WebView的UIDelegate。
- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
NSAlert *alert = [[NSAlert alloc] init];
[alert addButtonWithTitle:@"OK"];
[alert setMessageText:message];
[alert runModal];
[alert release];
}
答案 1 :(得分:5)
事实证明,没有默认的WebUIDelegate
设置 - Apple似乎希望每个人都为自己实现相同的基本功能。