今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC 网页试用[NSString stringWithFormat:@"http:// ...
今天博主有一个WebView与JS的交互的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.
WebView与JS的交互分为两种种方式:1.在OC中调用JS 2.在JS中调用OC
网页试用[NSString stringWithFormat:@"http://cn.bing.com"]
一.在OC中调用JS
直接上代码
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];//获取web页面内容信息,此处获取的是个json字符串
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"alert(1);"]];//显示并获取一个弹窗
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.location.href"];//获取当前页面的url
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.title"];//获取当前页面的title
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('q')[0].value='Mr.林';"];//修改当前页面的元素的值
// NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];//表单提交
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[webView stringByEvaluatingJavaScriptFromString:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function myFunction() { "
"var field = document.getElementsByName('q')[0];"
"field.value='Mr.林';"
"document.forms[0].submit();"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);"];
});
NSString *docStr=[webView stringByEvaluatingJavaScriptFromString:@"myFunction();"];
NSLog(@"*******%@",docStr);
}
PS:小技巧,WebView自带的属性是不可以改变字体大小颜色这些需求的,现在给出几种解决方案如下:
1.第一种方式:在WebView的代理方法webViewDidFinishLoad中:
字体大小: [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '12%'"];
字体颜色:[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= 'green'"];
背景颜色:[webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.background='#F6F7F3'"];
2.第二种方式:在下面可以通过改变margin大小来改变webview文字距离边距大小,13代表字体大小,self.strBookTips是要**作的字符串。
NSString *BookStr = [NSString stringWithFormat:@"<html> \n"
"<head> \n"
"<style type=\"text/css\"> \n"
"body {margin:10;font-size: %d;}\n"
"</style> \n"
"</head> \n"
"<body>%@</body> \n"
"</html>",13,self.strBookTips];
[self.webView loadHTMLString:BookStr baseURL:nil];
3.第三种方式,这种缺少了改变背景颜色
NSString * formatString = @"<span style=\"font-size:13px;color:#7E7C8A\">%@</span>";
NSString * htmlString = [NSString stringWithFormat:formatString,self.strBookTips];
[self.webView loadHTMLString:BookStr baseURL:nil];
二.用超链接来调用OC中的方法
步骤:
*1.设置webView的代理<UIWebView
Delegate>
原标题:iOS开发日记27
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。