今天晚上用WebKit 加载 HTML 的时候,发现传过来的 图片 尺寸不是很美丽,
于是乎 就想着,在加载完成之后,通过JS修改HTML中的图片尺寸,琢磨了半天,谢了一段js,成功了,可能存在一小点瑕疵,但是主体要完成的目的还是达到了。
啥也不说了,上代码,
一、UIWebView 中的 方法可以直接加载
stringByEvaluatingJavaScriptFromString:
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[webView stringByEvaluatingJavaScriptFromString:
@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function ResizeImages() { "
"var myimg,oldwidth;"
"var maxwidth = 1000.0;" // UIWebView中显示的图片宽度
"for(i= 1;i <document.images.length;i++){" // 之所以i= 1,因为我的0号位是头像,其他都是需要放大的,适应屏幕的
"myimg = document.images[i];"
"oldwidth = myimg.width;"
"myimg.width = maxwidth;"
"}"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);
ResizeImages();
"];
}
二、WKWebVIew 也就是方法不一样
设置自己为 webView的navigationDelegate通过
[evaluateJavaScript:completionHandler: ]方法,JS部分和上面的一样。
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
[ webView evaluateJavaScript:@"var script = document.createElement('script');"
"script.type = 'text/javascript';"
"script.text = \"function ResizeImages() { "
"var myimg,oldwidth;"
"var maxwidth = 1000.0;" // UIWebView中显示的图片宽度
"for(i=1;i <document.images.length;i++){"
"myimg = document.images[i];"
"oldwidth = myimg.width;"
"myimg.width = maxwidth;"
"}"
"}\";"
"document.getElementsByTagName('head')[0].appendChild(script);ResizeImages();" completionHandler:nil];
}
运行后效果:
原效果: