1. 程式人生 > >UIWebView和WKWebView 改變HTML 圖片尺寸 及 字型大小

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];
}


執行後效果:

原效果: