html選中圖片時,在頁面回寫圖片

咱們常常會遇到這種狀況,就是上傳一個圖片,可是點擊一個圖片的時候,最好是能夠在瀏覽器預覽這個圖片,否則用戶還覺得沒有選擇圖片呢,可是瀏覽器的安全機制卻阻止了這個問題,就是當訪問的是網絡上的網站的時候,是不能夠直接訪問本地的文件的,由於這樣子那豈不是人家寫一個網站,就能夠得到全部登錄這個網站人的一些資料了,尋麼咱們就能夠經過其它的方式來操做,下面給出一些javascript代碼,不是jquery,能夠直接使用的。javascript

//定義id選擇器
function Id(id){
return document.getElementById(id);
}
//入口函數,兩個參數分別爲<input type='file'/>的id,還有一個就是圖片的id,而後會自動根據文件id獲得圖片,而後把圖片放到指定id的圖片標籤中
function changeToop(fileid,imgid){
    var file = Id(fileid);
    if(file.value==''){
        //設置默認圖片
    Id("myimg").src='http://sandbox.runjs.cn/uploads/rs/72/huvtowwn/zanwu.png';
    }else{
        preImg(fileid,imgid);
    }
}
//獲取input[file]圖片的url Important
function getFileUrl(fileId) { 
    var url; 
    var file = Id(fileId);
    var agent = navigator.userAgent;
    if (agent.indexOf("MSIE")>=1) {
    url = file.value; 
    } else if(agent.indexOf("Firefox")>0) { 
    url = window.URL.createObjectURL(file.files.item(0)); 
    } else if(agent.indexOf("Chrome")>0) {
    url = window.URL.createObjectURL(file.files.item(0)); 
    } 
    return url; 
} 
//讀取圖片後預覽
function preImg(fileId,imgId) { 
var imgPre =Id(imgId);
imgPre.src = getFileUrl(fileId); 
}

這裏的入口方法爲java

changeToop()
只要在這裏面加兩個參數,一個是選擇文件的id,一個則是圖片的id,而後給文件input一個onchange事件,來觸發這個changeTop(),這樣就能夠達到預覽圖片的效果了
                            <div id="preview" style="float:left">
                                    <img id="imghead"  class="logo-size" src=''/>
                            </div>
                            <input id="filgo" type="file" name="logo" onchange="changeToop('filgo','imghead');" value="上傳圖片">
相關文章
相關標籤/搜索