1.在OC修改/获取网页内容的方法
OC提供了Api,调用网页中的JS方法:stringByEvaluatingJavaScriptFromString;
通过这个方法,可以获取网页的URL,Tilte,插入JS脚本。
测试代码:
- -(void)webViewDidFinishLoad:(UIWebView *)webView
- {
- //获取URL
- NSString *curURL = [webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];
- //获取标题
- /*
- 关于网页的标题
- 在网页HTML代码中,网页标题位于<head> </head>标签之间。其形式为:
- <title>网络营销教学网站</title>
- */
- NSString *title = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
- //修改属性值
- NSString *js_result = [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('good')[0].color='red';"];
- //调用JS方法
- [webView stringByEvaluatingJavaScriptFromString:@"funnight()"];
- //结果打印
- NSLog(@"jsresult=%@",js_result);
- NSLog(@"title=%@",title);
- NSLog(@"curURL=%@",curURL);
- }
需要用到WebView的协议函数:
测试代码:
- //JS中的button调用OC中的方法
- //WebView每次重定向的时候会调用<UIWebViewDelegate>协议中的方法,
- //无论地址是否合法,协议方法shouldStartLoadWithRequest都会被调用,
- //这样我们就可以在JS中button的触发函数中使网页重定向到我们自定义的地址中,
- //这样OC中的UIWebViewDelegate协议中的shouldStartLoadWithRequest就会被调用,
- -(void)ocFunc
- {
- NSLog(@"我是OC方法");
- }
- //(重定向之后)
- -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
- {
- // //刷新地址栏
- // if ([request.URL.absoluteString hasPrefix:@"http"]) {
- // _textFeild.text = request.URL.absoluteString;
- // }
- _textFeild.text = request.URL.absoluteString;
- // ://
- NSArray *array = [request.URL.absoluteString componentsSeparatedByString:@"://"];
- if ([[array objectAtIndex:0] isEqualToString:@"oc"]) {
- NSString *ocStr = [array objectAtIndex:1];
- //通过字符串调用函数
- SEL sel = NSSelectorFromString(ocStr);
- [self performSelector:sel];
- }
- return YES;
- }