UIWebView:我可以禁用任何网页内的JavaScript alert()吗?

我正在使用UIWebView加载一个URL。

在该网页的内部,它使用alert("whatever msg")作为JavaScript。 我的UIWebView将popup一个窗口,并显示警报消息。

有没有办法来禁用这种popup式窗口或JavaScript警报窗口?

在您的networking视图加载其内容后添加

 [MyWebView stringByEvaluatingJavaScriptFromString:@"window.alert=null;"]; 

您可以将window.alert绑定到另一个函数。 所以:

 window.alert = function() { //does nothing so effectively "disables" alert }; 

确保您在调用任何警报之前执行此操作。 整洁的事情是你可以自定义向用户显示消息的方式。 所以你可以重写window.alertlogin到控制台(为了debugging的目的),或者你可以在页面上渲染它(使用灯箱或类似的东西)。

由于UIWebView将所有Javascript警报转换为本地UIAlertViews ,因此在本机端进行阻塞相当简单。 调查UIAlertView.h只有一个公开的方法来显示一个方便地调用的警报: - (void)show;

 @interface UIAlertView (Blocker) @end #import "UIAlertView+Blocker.h" @implementation UIAlertView (Blocker) - (void)show { return; } @end 

你可以在这里find答案: https : //stackoverflow.com/a/21698251/2377378