1 window.URL是干嘛的?

window对象的URL对象是专门用来将blob或者file读取成一个url的。

window.URL.createObjectURL(file / blob)

这个url可以用在html的任何可以使用url的地方,比如img的src ; audio/video的src和source标签等。
所有能在浏览器中显示的图片、音频、视频等都是可以用url转换成一个url对象的,这个对象一旦被src引用,就会显示出来。

那么这些file或者blob来自于哪里呢?可以是在本地硬盘中通过<input type='file'>选择的文件,也可以是通过ajax请求后某个不知名的服务器请求到内存的。

问题: 如果一个img标签的src属性是一个excel文件转换成的url对象,那会发生什么?

我想img肯定将它读不出来,因为会img标签会检测文件类型。

2.URL构造函数将普通url转换成URL对象

除了可以将一个文件或者blob转化成一个Url对象,还可以将一个url字符串转换成一个URL对象

// https://cn.bing.com?id=123
var parsedUrl = new URL('https://cn.bing.com?id=123v');
console.log('parsedUrl' , parsedUrl, parsedUrl.searchParams.get("id")); // 123
console.log('parsedUrl' , parsedUrl.toString(), parsedUrl.searchParams.set("name" , 'alexandra')); // https://cn.bing.com/?id=123v&name=alexandra

searchParams属性返回一个URLSearchParams对象,这样就可以对url对象中的参数进行遍历或者其他操作

var urlSearchParams = URL.searchParams;

3.URL实例对象的toString()方法

URL的toString()方法可以将URL转换成url字符串,且:

URL.toString() === URL.href
// http://www.example.com/démonstration.html
let url = new URL('http://www.example.com/démonstration.html')
let test = url.toString() === url.href;
console.log('url.href', url.href, 'url.toString()' , url.toString() , 'test' , test);
// url.href http://www.example.com/d%C3%A9monstration.html url.toString() http://www.example.com/d%C3%A9monstration.html test true

https://developer.mozilla.org...

4.URL对象静态方法createObjectURL(object)

URL.createObjectURL(object)是URL 对象的静态方法,用于创建一个DOMString(is a UTF-16 string),其实就是返回了一个在内存中指向传入参数object的引用路径url字符串。
生成的这个url字符串会在当前页面的document被销毁的时候失效。

objectURL = URL.createObjectURL(object);object
A File, Blob or MediaSource object to create an object URL for.return
A DOMString containing an object URL that can be used to reference the contents of the specified source object.

https://developer.mozilla.org...

5.URL对象静态方法revokeObjectURL(objectURL)

URL对象的静态方法revokeObjectURL()用于销毁之前通过URL.createObjectURL(object)方法创建的url。
一旦调用这个方法就表示告诉浏览器不再保存之前被创建的那个url了。 在revokeObjectURL(objectURL)之后,再次使用该url,会报错,因为该url已经被销毁,无法使用了。

window.URL.revokeObjectURL(objectURL);objectURL
A DOMString representing a object URL that was previously created by calling createObjectURL().return
ubdefined

https://developer.mozilla.org...

window.URL对象的使用方式相关推荐

  1. JS中window.document对象

    小知识点注:外面双引号,里面的双引号改为单引号:                  在div里面行高设置和整个外面高度一样,才能用竖直居中,居中是行居中                  文本框取出来 ...

  2. 使用对象 url 显示图像(window.URL.createObjectURL的使用)

    本示例使用对象 url 显示图像缩略图.此外, 它还显示其他文件信息, 包括它们的名称和大小. 呈现界面的 HTML 如下所显示: <input type="file" id ...

  3. JavaScript中的Window窗口对象【转载】

    本文转载自:http://www.ijavascript.cn/jiaocheng/javascript-window-65.html 他是JavaScript中最大的对象,它描述的是一个浏览器窗口. ...

  4. 【Spring 工厂】反转控制与依赖注入、Spring工厂创建复杂对象3种方式

    反转控制与依赖注入 反转控制 与 依赖注入 反转控制(IOC Inverse of Control) 依赖注入 (Dependency Injection - DI) Spring工厂创建复杂对象(3 ...

  5. 小程序 url 对象转字符串编码传参 url 字符串转对象解码接收参数

    url 对象转字符串编码传参 let info = encodeURI(JSON.stringify(this.data.info));wx.navigateTo({url: '/pages/part ...

  6. java 复制对象有哪些方式

    2019独角兽企业重金招聘Python工程师标准>>> java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.bea ...

  7. 转 cocos2d-x 3.0 常用对象的创建方式

    cocos2d-x 3.0 中所有对象几乎都可以用create函数来创建,其他的创建方式也是有create函数衍生. 下面来介绍下create函数创建一般对象的方法,省得开发中经常忘记啥的. 1.精灵 ...

  8. WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance

    我们知道WCF有3种典型的对service instance进行实例化的方式,他们分别与WCF的三种InstanceContextMode相匹配,他们分别是PerCall,PerSession和Sin ...

  9. JavaScript实现创建自定义对象的常用方式总结

    2019独角兽企业重金招聘Python工程师标准>>> 1. 对象字面量方式 对象字面量方式是创建自定义对象的首选模式,简单方便. var per = { name:'zhangsa ...

最新文章

  1. 断言(assert)和程序的安全保证
  2. c++ eos智能合约开发_干货|EOS智能合约开发(一)EOS环境搭建和启动节点
  3. Spring4.x新特性
  4. 一个深圳程序员被一美女骗到东莞迷強
  5. Java-图书管理系统(控制台程序)
  6. 拼音工具类(多音字处理)
  7. python使用matplotlib绘图 -- barChart
  8. Word 中自动设置匹配章、节序号的标题
  9. JS仿iGoogle自定义首页模块拖拽效…
  10. arm架构下spinlock原理 (代码解读)
  11. GEE-Python遥感大数据分析
  12. java poi写doc文件_如何使用POI hwpfdocument在java中的.doc文件中编写大量文本
  13. Jaspersoft Studio 创建简单报表
  14. 产业区块链生态架构图
  15. 值得一看的纪录片——《河西走廊》墙裂推荐
  16. 微信公众号文章怎么搞成html,微信公众号文章如何排版才能更好看(附教程)...
  17. 50.新拟物卡片悬停特效
  18. 绝命毒师观后感(r6笔记第48天)
  19. 第三十六篇:WinUSB调试实例
  20. VSCode将Java文件编译生成的class文件存在哪的?

热门文章

  1. python密码传参有特殊字符如何解决_am start的总结,-d参数的总结,以及python中传递内容包含中文及特殊字符的解决方案...
  2. weblogic进程自动关闭_手机内存不够还卡顿,那是你不会清理,关闭这3个设置就变流畅...
  3. javadoc解析成java 生成 api文档
  4. linux 无线 扫描不到网络,在Ubuntu笔记本上搜不到无线信号的解决办法
  5. react循环key值_01 React快速入门(一)——使用循环时对于‘key’报错处理
  6. linux 骇客帝国脚本,Linux下,那些让人惊叹的命令执行效果
  7. java面向对象实现表达式计算,java面向对象课程设计-数学表达式计算器
  8. oracle对某两列求和再求和_只会SUM函数求和,试试这5种求和函数,十倍提高工作效率...
  9. linux查看文件第三行,学习linux第三课!新手必须掌握的linux命令
  10. 301与302页面重定向