情境: 我通过 UIWebView
方法 stringByEvaluatingJavaScriptFromString:
调用一个 Javascript 的 alert
,代码示例如下...
[myWebView stringByEvaluatingJavaScriptFromString:@"alert('FOOBAR');"];
问题:iOS显示了一个预期的“FOOBAR”警报,但是点击“关闭”按钮无法关闭警报。
为什么我无法关闭JavaScript警报?如何关闭它?
情境: 我通过 UIWebView
方法 stringByEvaluatingJavaScriptFromString:
调用一个 Javascript 的 alert
,代码示例如下...
[myWebView stringByEvaluatingJavaScriptFromString:@"alert('FOOBAR');"];
问题:iOS显示了一个预期的“FOOBAR”警报,但是点击“关闭”按钮无法关闭警报。
为什么我无法关闭JavaScript警报?如何关闭它?
stringByEvaluatingJavaScriptFromString:
方法的JS的线程和处理iOS警告视图的线程可能会相互阻塞,使得"关闭"按钮无响应。setTimeout
推迟JS的alert
,类似于这样...NSString *jsMyAlert = @"setTimeout(function(){alert('FOOBAR');}, 1);";
[myWebView stringByEvaluatingJavaScriptFromString:jsMyAlert];
UIWebView
触发一个UIAlertView
,而不是依赖于UIWebView
来处理JS alert
。虽然上面的解决方法对于大多数调试目的来说是适用的。