Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >很少用到,但掏出来让人感到牛逼的Web API

很少用到,但掏出来让人感到牛逼的Web API

作者头像
IT大咖说
发布于 2020-09-28 01:58:27
发布于 2020-09-28 01:58:27
38400
代码可运行
举报
文章被收录于专栏:IT大咖说IT大咖说
运行总次数:0
代码可运行

前几天听到同事突然喊道:“还能这样?”

我过去一看,原来是对canvas画布转成了File文件,用到了一些比如blobToFile方法。

这也让我反思,平常我们沉浸于复杂的业务,用的却是丰富的web api中的一角。以至于当实现我们不熟悉的业务的同时,竟然不知道该如何去实现。今天就来说说那些不常见的web api,找回刷文档的快乐。

我要是有两个妹子看着我写代码,我也快乐啊

1.getSelection()

首先是getSelection() 方法,可以返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
window.getSelection() //

2.datatransfer

使用datatransfer实现的拖拽

DataTransfer 对象用于保存拖动并放下(drag and drop)过程中的数据。当我们拖放文件、图片等等数据的时候就需要用到这个API.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
document.addEventListenter((event) => {
  console.log(event.dataTransfer.getData("text/plain")); // 获取拖动的文字
  console.log(event.dataTransfer.getData(event.dataTransfer.getData("text/uri-list"))); // 获取拖动的文字
    })

更多文档查看(https://developer.mozilla.org/zh-CN/docs/Web/API/DataTransfer)

3.Canvas图片 to File

有时候canvas处理了图片,需要传给服务器。那么需要转换成文件对象。

为了兼容ios 需要 dataURL-> blob -> file

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var dataURL = canvas.toDataURL("image/jpeg", ratio);
var blob = dataURLtoBlob(dataURL);
var file = blobToFile(blob, '999');	

4.EventSource

有时碰到需要服务器去通知我们发生了某事件,而不是轮询服务器查询是否发生了什么事件。这时就可以用到EventSource。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
	if (typeof (EventSource) !== "undefined") {
		var source = new EventSource("/sse/countDown");
		console.log(source);
		source.addEventListener("countDown", function(e) {
			document.getElementById("result").innerHTML = e.data;
		}, false);//使用false表示在冒泡阶段处理事件,而不是捕获阶段。
	} else {
		document.getElementById("result").innerHTML = "抱歉,你的浏览器不支持 server-sent 事件...";

结束了

各位看官,你还有哪些让你觉得眼前一亮的API吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《大胖 • 小课》- 拖拽和剪贴板文件上传
这是《大胖小课》栏目的专题一《说说文件上传那些事儿》的第5节-《实现文件拖拽和剪贴板上传》
zz_jesse
2020/03/17
9980
HTML5 进阶系列:拖放 API 实现拖放排序
本文介绍了如何使用 HTML5 的拖放 API 实现一个简单的拖放排序功能。首先介绍了如何为元素设置拖放 API,然后通过一个示例展示了如何实现拖放排序。在示例中,使用了 dataTransfer 对象来存储数据,并通过 setDragImage() 方法来设置拖放图标。最后,指出了在 IE 和 iOS 上需要使用特定的插件来支持拖放排序。
IMWeb前端团队
2017/12/29
2.1K0
WebFlux拨云见日之前端整合,悟了吗? 顶
        从spring5中加入webflux的消息现世已经有一段时间了,也发现了一些朋友的公司在使用webfux,但是大多数都是用作为服务器之间的一些通讯、路由控制来使用,然而真正的把他当着一个web服务来提供给前端API的并木有。早年我就接触了bigpipe的概率了,但是在java的领域并不怎么活,单流的数据响应是否好像类似呢?于是我就研究了webflux和前端整合分享一下大家共同探讨...
kinbug [进阶者]
2019/06/20
2.2K0
WebFlux拨云见日之前端整合,悟了吗?
                                                                            顶
写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
今年国庆假期终于可以憋在家里了不用出门了,不用出去看后脑了,真的是一种享受。这么好的光阴怎么浪费,睡觉、吃饭、打豆豆这怎么可能(耍多了也烦),完全不符合我们程序员的作风,赶紧起来把文章写完。
coder_koala
2019/11/04
3.3K0
写给新手前端的各种文件上传攻略,从小图片到大文件断点续传
第43天:事件对象event
一、事件对象 事件:onmouseover、 onmouseout、 onclick event //事件的对象
半指温柔乐
2018/09/11
6020
HMTL5新增Api
拖动源对象相关事件 ondragstart:源对象开始被拖动 ondrag:源对象在拖动过程中 ondragend:源对象被拖动结束
切图仔
2022/09/08
5210
HMTL5新增Api
HTML5魔法堂:全面理解Drag & Drop API
一、前言                                      在HTML4的时代,各前端工程师为了实现拖拽功能可说是煞费苦心,初听HTML5的DnD API觉得那些痛苦的日子将一去不复返,但事实又是怎样的呢?下面我们一起来看看DnD API的真面目吧! 二、由于篇幅较长,特设目录一陀                       三、HTML4下实现简单拖拽 四、HTML5下实现简单拖拽 五、如何启用DnD效果 六、draggable属性详解 七、DnD的生命周期 八、DnD中最重要的数
^_^肥仔John
2018/01/18
4.2K0
HTML5魔法堂:全面理解Drag & Drop API
JavaScript 学习-50.实现页面菜单拖放(Drag 和 Drop)
拖放是一种常见的操作,即抓取对象以后从一个位置拖到另一个位置。 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。
上海-悠悠
2023/01/03
1.5K0
JavaScript 学习-50.实现页面菜单拖放(Drag 和 Drop)
HTML5新特性
本章的主要内容有: ---- [1] 用于媒体回放的 video 和audio 元素 [2] HTML5拖放 [3] canvas简单应用 [4] Web存储: localStorage 和 SessionStorage [5] Input输入类型 [6] 表单类型 [7] 表单属性 [8] 地理定位 (geolocation) [9] Web Workers: Worker [10] 服务器发送事件 EventSource ---- [1] 用于媒体回放的 video 和audio 元素 video 支持
echobingo
2018/04/25
1.8K0
HTML5新特性
H5十大新特性(前端面试新手必背)
前端HTML5十大新特性总结: <!DOCTYPE html> 这是什么玩意儿?为什么要写上去?不写上去会怎么样?很少人去注意到,反正就照写就可以了。 HTML5不是SGML的子集,从最开始的声明方式
红目香薰
2022/11/29
2.7K0
H5十大新特性(前端面试新手必背)
H5 的复制操作
作者:villainthr 一开始,在 Web 端,并没有任何可以接触到 clipborad 的内容。以前,我们想要执行 copy/paste/cut 只能借助 flash。但现在,伟大的 H5 又或
腾讯IVWEB团队
2017/05/10
6.2K2
H5拖放原生js将图片拖放另外一个元素里
拖放是一种常见的特性,即抓取对象以后拖到另一个位置。在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放
青梅煮码
2023/03/02
2.3K0
H5拖放原生js将图片拖放另外一个元素里
【javascript】谈谈HTML5—Web Worker+canvas+indexedDB+拖拽事件
前言:作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:《海贼王》中的主角路飞在
啦啦啦321
2018/01/03
3.9K0
【javascript】谈谈HTML5—Web Worker+canvas+indexedDB+拖拽事件
前端拾零02—H5原生拖放总结 【原创】
前端拾零收录日常开发中一些很常见很基础的前端操作,省去每次google甚至答案错误的烦恼
CS逍遥剑仙
2018/09/26
2K0
干货 | 前端常用的通信技术
作者简介 陈为平,携程市场部前端工程师,目前主要负责“携程运动”项目的大前端相关工作。 前段时间在忙开发携程运动项目和相应的微信小程序,其中和后端通信犹为频繁。get、post请求方法是很多前端童鞋使用最频繁的;websocket在11年盛行后方便了客户端和服务器之间传输,……and so on ,除了这些,还有很多我们不常使用的其他方式,但是在实际的业务场景中却真实需要。 本文总结了目前前端使用到的数据交换方式,阐述了业务场景中如何选择适合的方式进行数据交换( form ,xhr, fetch, SSE
携程技术
2018/03/16
2.3K0
干货 | 前端常用的通信技术
JavaScript学习笔记(二)
JavaScript的事件机制:事件是JavaScript和DOM交互的桥梁,常见的click,load,mouseover都是事件的名字,事件发生时调用它的处理函数执行相应的JavaScript代码并给出响应。
wsuo
2020/07/31
1K0
【JS】936- File、Blob、dataURL 和 canvas 的应用与转换
(1) 通常情况下, File 对象是来自用户在一个 input 元素上选择文件后返回的 FileList 对象,也可以是来自由拖放操作生成的 DataTransfer 对象,或者来自 HTMLCanvasElement 上的 mozGetAsFile() API。
pingan8787
2021/04/26
2.6K0
【JS】936- File、Blob、dataURL 和 canvas 的应用与转换
H5新增的特性及语义化标签
为了更好地处理今天的互联网应用,HTML5添加了很多新元素及功能,比如: 图形的绘制,多媒体内容,更好的页面结构,更好的形式 处理,和几个api拖放元素,定位,包括网页 应用程序缓存,存储,网络工作者,等
青梅煮码
2023/01/31
2.7K0
第90天:HTML5中文件API和拖放操作
一、文件API File API:提供客户端本地操作文件的可能 multiple是让文件域可以多选 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>文件API</title> 6 <link rel="stylesheet" href="bootstrap.css"> 7 </head> 8 <body> 9 <form action=""> 1
半指温柔乐
2018/09/11
8130
HTML5
JS 里拖拽三事件, onmousedown onmousemove onmouseup 是实现交互性效果,根据鼠标的移动位置让标签元素联动
jinghong
2020/05/12
4.6K0
相关推荐
《大胖 • 小课》- 拖拽和剪贴板文件上传
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档