UIWebView和WKWebView 改變HTML 圖片尺寸 及 字型大小
今天晚上用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];
}
執行後效果:
原效果: