UDN-企业互联网技术人气社区

板块导航

浏览  : 530
回复  : 2

[原生js] ios 获取或修改网页上的内容

[复制链接]
芭芭拉的头像 楼主
发表于 2016-12-31 15:49:20 | 显示全部楼层 |阅读模式
  UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将JavaScript嵌     入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。

  stringByEvaluatingJavaScriptFromString

  使用stringByEvaluatingJavaScriptFromString方法,需要等UIWebView中的页面加载完成之后去调用。我们在界     面上拖放一个UIWebView控件。在Load中将google mobile加载到这个控件中,代码如下:
  1. - (void)viewDidLoad
  2. {
  3.      [super viewDidLoad];
  4.      webview.backgroundColor = [UIColor clearColor];  
  5.     webview.scalesPageToFit =YES;
  6.     webview.delegate =self;
  7.    NSURL *url =[[NSURL alloc] initWithString:@"http://www.google.com.hk/m?gl=CN&hl=zh_CN&source=ihp"];
  8.     NSURLRequest *request =  [[NSURLRequest alloc] initWithURL:url];
  9.     [webview loadRequest:request];   
  10. }
复制代码

  我们在webViewDidFinishLoad方法中就可以通过JavaScript操作界面元素了。

  1、获取当前页面的url。
  1. - (void)webViewDidFinishLoad:(UIWebView *)webView {   
  2.    NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];  
复制代码

  2、获取页面title:
  1. NSString *title = [webview stringByEvaluatingJavaScriptFromString:@"document.title"];   
复制代码

  3、修改界面元素的值。
  1. NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='朱祁林';"];
复制代码

  4、表单提交:
  1. NSString *js_result2 = [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit(); "];  
复制代码

  5、获取所有的html
  1. NSString *allHtml = @"document.documentElement.innerHTML";
  2. NSString *allHtmlInfo = [webView stringByEvaluatingJavaScriptFromString:allHtml];
复制代码

  6、获取网页的一个值
  1. NSString *htmlNum = @"document.getElementById('title').innerText";
  2. NSString *numHtmlInfo = [webView stringByEvaluatingJavaScriptFromString:htmlNum];
复制代码

  7、插入js代码

  上面的功能我们可以封装到一个js函数中,将这个函数插入到页面上执行,代码如下:
  1. if ([title compare: @"Google"]==NSOrderedSame ) {  
  2.   
  3.     [webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement_x('script');"   
  4.      "script.type = 'text/JavaScript';"   
  5.      "script.text = "function myFunction() { "   
  6.      "var field = document.getElementsByName('q')[0];"   
  7.      "field.value='朱祁林';"   
  8.      "document.forms[0].submit();"   
  9.      "}";"   
  10.      "document.getElementsByTagName_r('head')[0].appendChild(script);"];     
  11.       
  12.     [webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];   
  13. }
复制代码

  看上面的代码:

  a、首先通过js创建一个script的标签,type为'text/JavaScript'。

  b、然后在这个标签中插入一段字符串,这段字符串就是一个函数:myFunction,这个函数实现google自动搜索关键字的功能。

  c、然后使用stringByEvaluatingJavaScriptFromString执行myFunction函数。

相关帖子

发表于 2016-12-31 15:49:52 | 显示全部楼层
我完全是被标题<<ios 获取或修改网页上的内容>>吸引过来的
使用道具 举报

回复

发表于 2016-12-31 22:49:26 | 显示全部楼层
不错的帖子,支持下
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部