只用url也能完成网页?

104 阅读1分钟

前言

完成一个web页面需要什么?三大框架?还是web三剑客?现在都不用了,只用url也能实现简单的web页面了。

使用url绘制页面

绘制一个播放器

先来看下面这个url:

data: text/html, <html contenteditable>

直接把他复制进浏览器,发现直接打开了一个可编辑的界面

9.gif

发送请求

也可以直接写个脚本发送请求

data: text/html, <script>fetch("http://baidu.com")</script>

image.png

更多案例

还有很多意思的东西,可以用这种模式完成表格,canvas画条版,甚至html编辑器

更多请看这里

知识点分析

语法分析

其实看到这里来大家应该也看出来了,所谓的生成页面的url,就是data: text/html前缀和一段html代码的组合

其语法格式如下

data:[<mediatype>][;base64],<data>
  • data: 表示Data URL的协议
  • mediatype: MIME 类型的字符串,例如 'image/jpeg' 表示 JPEG 图像文件。如果被省略,则默认值为 text/plain;charset=US-ASCII
  • base64: 使用base64格式,如果携带该标签,则后面的data内容需要以base64的格式展示
  • data: 主体内容,其实也就是页面的html内容

语法限制

  • url长度限制,需要考虑浏览器所支持的最大url长度
  • 缺乏错误处理,某些问题可能被忽略并没有错误提示(没有找到例子)
  • 无法存储数据,无法使用localStorage等方法
  • 存在安全隐患,浏览器限制顶级域名跳转至Data URL

参考资源

developer.mozilla.org/en-US/docs/… lifehacker.com/turn-any-br… taqkarim.medium.com/a-technique…