iOS: UIWebView 中不加載圖片(即瀏覽器常見的無圖模式)


寫到關於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()"];
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM