javascript - 我可以在 UIWebViewDelegate 中处理警报吗?

标签 javascript iphone uiwebview

<script language="javascript">
    alert("Hell! UIWebView!");
</script>

我可以在我的 UIWebView 中看到警告消息,但是我可以处理这种情况吗?

更新:

我正在将网页加载到我的 UIWebView 中:

- (void)login {
    NSString *requestText = [[NSString alloc] initWithFormat: @"%@?user=%@&password=%@", DEFAULT_URL, user.name, user.password];    // YES, I'm using GET request to send password :)
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:requestText]];
    [webView loadRequest:request];
}

目标页面包含一个JS。如果用户名或密码不正确,此 JS 显示警报。 我无权访问其来源。 我想在我的 UIWebViewDelegate 中处理它。

最佳答案

这个问题更好的解决办法是为方法创建一个UIWebView的Category

webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:

这样您就可以按照您喜欢的任何方式处理警报事件。我这样做是因为我不喜欢 UIWebView 将源文件名放在 UIAlertView 标题中时的默认行为。类别看起来像这样,

@interface UIWebView (JavaScriptAlert) 

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

@end

@implementation UIWebView (JavaScriptAlert)

- (void)webView:(UIWebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
    UIAlertView* dialogue = [[UIAlertView alloc] initWithTitle:nil message:message delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil];
    [dialogue show];
    [dialogue autorelease];
}

@end

关于javascript - 我可以在 UIWebViewDelegate 中处理警报吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21070399/

相关文章:

iphone - UITextView 格线背景但错误的行高

javascript - 避免 UIWebView 加载 iTunes App

javascript - 通过检查cookie动态改变jQuery "hover"

javascript - "position: fixed"与包含 svg 元素的 div 一起使用时会导致许多问题

javascript - 如何将用 Javascript 创建的图像居中?

JavaScript 无限循环幻灯片放映延迟?

iphone - 如何让 Qemu USB Passthrough 为 iPad/iPhone 工作?

iphone - 苹果框架中的内存泄漏

ios - 防止 UIWebView 中烦人的 HTML5 地理定位警报

html - UiWebView 中的 contenteditable div - 单击完成时不保存新行