首页 > 代码库 > UIWebView 自定义网页中的alert和confirm提示框风格

UIWebView 自定义网页中的alert和confirm提示框风格

.h

#import <UIKit/UIKit.h>  

@interface UIWebView (JavaScriptAlert)  

-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;  

-(BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame;  

@end

.m

#import "UIWebView+JavaScriptAlert.h"  

@implementation UIWebView (JavaScriptAlert)  

static BOOL diagStat = NO;  

-(void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame{  

   UIAlertView* dialogue = [[UIAlertView alloc]initWithTitle:nil message:message delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];  

   [dialogue show];  

   [dialogue autorelease];  

}  

-(BOOL)webView:(UIWebView *)sender runJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame{  

  UIAlertView* dialogue = [[UIAlertView alloc] initWithTitle:nil message:message delegate:self cancelButtonTitle:NSLocalizedString(@"Okay", @"Okay") otherButtonTitles:NSLocalizedString(@"Cancel", @"Cancel"), nil];  

  [dialogue show];

  while (dialogue.hidden==NO && dialogue.superview!=nil) {  

   [[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01f]];  

      }  

      [dialogue release];

   return diagStat;  

}  

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

   if (buttonIndex==0) {  

          diagStat=YES;  

      }else if(buttonIndex==1){  

          diagStat=NO;  

      }  

}  

@end