我正在UIWebView中加载外部网页。加载网页时,会出现一个警告框(带有“确定”和“取消”按钮),其中包含有关网页的一些建议/信息。我想在我的iphone应用程序中的UIWebView组件中加载网页时阻止此警报框。如何在我的代码中实现?
感谢您的回复。我不负责外部网页(但我可以要求关注网页所有者根据以下要求进行更改)。要求是当我们在iPhone Safari浏览器中查看网页时,可以显示Alert Box(用于告诉我的iphone应用程序),而不是在我的iphone应用程序中使用相同网页的UIWebView中。我在iPhone Safari和使用UIWebView的iPhone应用程序中使用相同的网页URL。因此,当我们在iPHone Safari中查看网页时,要求显示警告框,当我们在iPhone应用程序中查看同一网页时(在UIWebView中),不显示警报框。希望我已经清楚地解释了我的要求。请为此提供任何解决方案。
答案 0 :(得分:1)
使用stringByEvaluatingJavaScriptFromString:
方法,您可以使用您提供的任何JavaScript更改页面上的任何内容,这样您就可以重载或替换警报功能以执行您想要的操作
答案 1 :(得分:0)
您是这个外部网页的“负责人”吗?如果是这种情况,你可以这样做:
UIWebView
加载externalpage.html?noalert
而不是externalpage.html
。
然后在externalpage.html
上,您可以检查此查询字符串变量是否存在,如果不存在,则仅显示alert()
:
if(!document.location.search || document.location.search.substring(1) != 'noalert') {
alert('Boo!');
}
答案 2 :(得分:0)
答案 3 :(得分:0)
由于UIWebView
将所有Javascript警报转换为本机UIAlertViews
,因此在本机端阻止它是相当简单的。查看UIAlertView.h
,只有一种公开方法可以显示一个方便的名为- (void)show;
的警报。
@interface UIAlertView (Blocker)
@end
#import "UIAlertView+Blocker.h"
@implementation UIAlertView (Blocker)
- (void)show {
return;
}
@end
您可以在此处找到答案:https://stackoverflow.com/a/21698251/2377378