13

当嵌入WebView应用程序并在其中加载 html 页面时,JavaScripts alert()/ confirm()/etc. 不工作。

在文档中环顾四周,没有相关的设置WebPreferences- 唯一看起来相关的是WebUIDelegates-(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:等......但实现这些意味着为这些编写自定义对话框,这似乎非常多余......
我不需要自定义WebUIDelegate和想继续使用默认的。

当然必须有某种方法来简单地启用alert()等,但是如何?

4

2 回答 2

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];
}
于 2011-09-01T09:10:29.430 回答
5

事实证明,根本没有默认WebUIDelegate设置——Apple 似乎希望每个人都为自己实现相同的基本功能。

于 2010-01-20T21:17:03.843 回答