html的data url和blob url
创始人
2025-07-09 12:38:33
0

data url

data url的语法为:

data:[<mediatype>][;base64],<data>

说明:

(1)mediatype:设置内容类型,缺省为text/plain;charset=US-ASCII

(2)对于一些“小”的数据,可以使用data url在网页中直接嵌入,而不是从外部文件载入。

适用于html的img、iframe、link、script;css的background-image。

例如:

data:text/plain;charset=utf-8,你好,中文!

data:text/plain;charset=utf-8;base64,5L2g5aW977yM5Lit5paH77yB

data:text/html;charset=utf-8,

data:text/html;charset=utf-8;base64,

data:text/css;charset=utf-8,

data:text/css;charset=utf-8;base64,

data:text/javascript;charset=utf-8,

data:text/javascript;charset=utf-8;base64,

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHVK...

(3)动态生成data url(读取本地文件生成data url)

<div id="c"></div>

<form>

<input type="file" name="file1" id="file1" onchange=readit()">

</form>

<script>

function readit(){

  var file1=document.getElementById("file1").files[0];

  var fr=new FileReader();

  fr.readAsDataURL(fr);

  fr.onload=function(){

    var img=document.createElement("img");

    img.src=this.result;

    document.getElementById("c").appendChild(img);

  }

}

</script>



blob url

blob:不可变,原始数据的类文件对象。

blob url只能通过动态生成,形如blob:http://,适用于html的img、iframe、link、script、audio、video等。


创建blob对象的语法为:

var blob=new Blob(array,options);

说明:

(1)array为设置数据。

(2)options为设置参数,主要有:

type:设置内容类型,取值有text/plain、text/html、text/css、text/javascript等,缺省为""。

例如:

var blob=new Blob(["<script>alert('hello world!')</script>"],{"type":"text/html"});


创建blob url的语法为:

var url=URL.createObjectURL(blob对象);


读取本地文件生成blob url

<div id="c"></div>

<form>

<input type="file" name="file1" id="file1" onchange=readit()">

</form>

<script>

function readit(){

  var fr=new FileReader();

  var file1=document.getElementById("file1").files[0];

  fr.readAsArrayBuffer(file1);

  fr.onload=function(){

    var img=document.createElement("img");

    img.src=URL.createObjectURL(new Blob([this.result]));

    document.getElementById("c").appendChild(img);

  }

}

</script>


读取远程文件生成blob url(fetch)

<div id="c"></div>

<script>

__window.onload=function(){

  fetch("./images/m11.png").then(response=>{

    if(response.ok){

      response.blob().then(blob=>{

        var img=document.createElement("img");

        img.src=URL.createObjectURL(blob);

        document.getElementById("c").appendChild(img);

      });

    }

  });

}

</script>


读取远程文件生成blob url(ajax)

<div id="c"></div>

<script>

__window.onload=function(){

  var xhr=new XMLHttpRequest();

  xhr.responseType="blob";

  xhr.onreadystatechange=function(){

    if(xhr.readyState==4&&xhr.status==200){

      var img=document.createElement("img");      

      img.src=URL.createObjectURL(xhr.response)

      document.getElementById("c").appendChild(img);

    }

  }

  xhr.open("get","./images/m11.png",true);

  xhr.send();

}

</script>

相关内容

热门资讯

弹性布局 布局的传统解决方案,基于盒状模型,依赖display属性+position属性+float属性。20...
js设置html属性和CSS属... js设置html属性:(1)添加属性对象名.属性名=值对象名.setAttribute("属性名",...
php swoole实现web... 1、使用http连接websocket(ws://)服务器端:
css实现强制不换行/自动换行... 强制不换行white-space:nowrap;自动换行word-wrap: break-word;...
关于css的text-inde... p{text-indent: 2em; /*em是相对单位,2em即现在一个字大小的两倍*/}可加了...
html的data url和b... data urldata url的语法为:data:[][;base64],说明:(1)mediat...
php的安装与配置 一、linux(centos)1、nginx的安装与配置新建文件/etc/yum.repos.d/n...
自定义复选框样式 input[type="checkbox"] {appearance:none;-webkit-ap...
fetch方式发送请求 1、以get方式发送查询字符串fetch("server.php?查询字符串"[,{method:"...
css实现内容裁剪 1、实现单行内容裁剪,后跟省略号overflow:hidden;text-overflow:elli...