UIWebView和网页的交互(OC中调执行JS)

UIWebView和网页的交互(OC中调执行JS)
- ( void )viewDidLoad
{
    [
super viewDidLoad ];
   
// 1.webView
   
UIWebView *webView = [[ UIWebView alloc ] init ];
    webView.
frame = self . view . bounds ;
    webView.
delegate = self ;
   
// 伸缩页面至填充整个 webView
    webView.
scalesPageToFit = YES ;
   
// 隐藏 scrollView
    webView.
scrollView . hidden = YES ;
    [
self . view addSubview :webView];
   
   
// 2. 加载网页
   
NSURLRequest *request = [ NSURLRequest requestWithURL :[ NSURL URLWithString : @"http://m.dianping.com/tuan/deal/5501525" ]];
    [webView
loadRequest :request];
   
   
// 3. 创建
   
UIActivityIndicatorView *loadingView = [[ UIActivityIndicatorView alloc ] initWithActivityIndicatorStyle : UIActivityIndicatorViewStyleWhiteLarge ];
    [loadingView
startAnimating ];
    loadingView.
center = CGPointMake ( 160 , 240 );
    [
self . view addSubview :loadingView];
   
self . loadingView = loadingView;
}

// OC 中调用 JS
#pragma mark - UIWebViewDelegate
- ( void )webViewDidFinishLoad:( UIWebView *)webView
{

   
NSMutableString *js1 = [ NSMutableString string ];
   
// 0. 删除顶部的导航条
    [js1
appendString : @"var header = document.getElementsByTagName('header')[0];" ];
    [js1
appendString : @"header.parentNode.removeChild(header);" ];
   
   
// 1. 删除底部的链接
    [js1
appendString : @"var footer = document.getElementsByTagName('footer')[0];" ];
    [js1
appendString : @"footer.parentNode.removeChild(footer);" ];
    [webView
stringByEvaluatingJavaScriptFromString :js1];
   
   
dispatch_after ( dispatch_time ( DISPATCH_TIME_NOW , ( int64_t )( 0.25 * NSEC_PER_SEC )), dispatch_get_main_queue (), ^{
       
NSMutableString *js2 = [ NSMutableString string ];
       
// 2. 删除浮动的广告
        [js2
appendString : @"var list = document.body.childNodes;" ];
        [js2
appendString : @"var len = list.length;" ];
        [js2
appendString : @"var banner = list[len - 1];" ];
        [js2
appendString : @"banner.parentNode.removeChild(banner);" ];
        [webView
stringByEvaluatingJavaScriptFromString :js2];
       
       
// 显示 scrollView
        webView.
scrollView . hidden = NO ;
       
       
// 删除圈圈
        [
self . loadingView removeFromSuperview ];
    });
}
注意:
从网络上获取数据,如果不想看到某种效果,并且网页存放在服务器端,里面的JS和Html代码,没有办法修改,可以在UIWebView的代理方法执行JS代码,去掉不想看到的效果。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值