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.alert
login到控制台(为了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