美文网首页
createObjectURL和revokeObjectURL

createObjectURL和revokeObjectURL

作者: 苍老师的眼泪 | 来源:发表于2022-01-28 00:06 被阅读0次

    用于将blob或类型为file的input元素或拖拽事件产生的file用作图片的src:

    参数是blob(例如返回类型为blob的ajax请求返回的)

    <!DOCTYPE html>
    <html lang="en">
    
    <body>
        <img id="img" alt="">
        <script>
    
            window.URL = window.URL || window.webkitURL;
            var xhr = new XMLHttpRequest();
    
            xhr.open("get", 'https://laravel.gign.xyz/cxk.jpg', true);
    
            xhr.responseType = "blob"
    
            xhr.onload = function () {
                if (this.status == 200) {
    
                    let blob = this.response
    
                    let img = document.getElementById("img")
    
                    img.src = window.URL.createObjectURL(blob)
    
                    img.onload = e => window.URL.revokeObjectURL(img.src)
    
    
                }
            }
            xhr.send()
    
        </script>
    </body>
    
    </html>
    

    参数是file

    <!DOCTYPE html>
    <html lang="en">
    
    <body>
        <img id="img" width="320px" alt="">
        <div name="image" id="dropbox" style="min-width:300px;min-height:200px;border:3px dashed silver;"></div>
    
        <script>
            // 目标元素中dragover和drop事件中要阻止默认行为(拒绝被拖放),否则拖放不能被实现
            dropbox.addEventListener("dragover", function (e) {
                e.preventDefault();
            });
    
            dropbox.addEventListener("drop", function (e) {
                e.preventDefault();
    
                let file = e.dataTransfer.files[0]
    
                img.onload = () =>  {
    
                    window.URL.revokeObjectURL(img.src)
    
                }
                        
    
                img.src = window.URL.createObjectURL(file)
            });  
        </script>
    
    </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:createObjectURL和revokeObjectURL

          本文链接:https://www.haomeiwen.com/subject/cavohrtx.html