寫到關於UIWebView不加載圖片時,查了很多資料,
關於js,關於oc,在stackoverflow 等 並沒有找到合適的答案,
最終覺得還是應該回歸傳統 用js代碼,
stringByEvaluatingJavaScriptFromString 來調用js方法
js代碼:
var div_hide_css_id = "iBrowser_div_hide_css"; // ------------------- 有圖/無圖 ---- function JSHandleHideImage () { var i = 0; var allDiv = document.getElementsByTagName("DIV"); for (i; i<allDiv.length; i++) { var e = allDiv[i]; var bg_image = e.style.backgroundImage; e.style.backgroundImage = "none"; e.setAttribute("bg_image", bg_image); } var newCss = document.getElementById(div_hide_css_id); if(newCss == undefined){ document.documentElement.innerHTML= document.documentElement.innerHTML+"<style id='"+div_hide_css_id+"'>img{visibility:hidden;}</style>"; } else { if(newCss.innerHTML == '') { } newCss.innerHTML = 'img{visibility:hidden;}'; } } function JSHandleShowImage () { var i = 0; var allDiv = document.getElementsByTagName("DIV"); for (i; i<allDiv.length; i++) { var e = allDiv[i]; var bg_image = e.getAttribute("bg_image"); e.style.backgroundImage = bg_image; } var newCss = document.getElementById(div_hide_css_id); if(newCss){ newCss.innerHTML = 'img{visibility:visibility;}'; } }
oc代碼
if (//無圖) { [webView stringByEvaluatingJavaScriptFromString:@"JSHandleHideImage()"]; }else{ [webView stringByEvaluatingJavaScriptFromString:@"JSHandleShowImage()"]; }