文章链接:http://www.cocoachina.com/bbs/read.php?tid=240428
我用UIWebView加载了一个网页,这个网页中有按钮,点击后会弹出对话框
JavaScript中有三种形式的弹出框,alert,confirm,prompt;我只改掉了其中两种,最后那个prompt类型的捕捉不到,实在没找到资料,,求助各位大神帮忙!谢谢!!!
alert和confirm修改的代码如下、、希望对解决我的问题有所帮助!
@interface UIWebView (JavaScriptAlert) <UIAlertViewDelegate>
- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;
@end
@implementation UIWebView (JavaScriptAlert)
- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
UIAlertView* customAlert = [[UIAlertView alloc] initWithTitle:@"Alert Title" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[customAlert show];
[customAlert autorelease];
}
static BOOL diagStat = NO;
- (BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame
{
UIAlertView *confirmDiag = [[UIAlertView alloc] initWithTitle:@"Confirm Title" message:message delegate:self cancelButtonTitle:NSLocalizedString(@"Cancel", @"Cancel") otherButtonTitles:NSLocalizedString(@"OK", @"OK"), nil];
[confirmDiag show];
while (confirmDiag.hidden == NO && confirmDiag.superview != nil)
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01f]];
[confirmDiag release];
return diagStat;
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
diagStat = NO;
}
else if (buttonIndex == 1)
{
diagStat = YES;
}
}
@end