你不知道的js
1、<a>标签
(1)href属性包含超链接或超链接指向的URL或URL片段,URL 片段是哈希标记(#)前面的名称,哈希标记指定当前文档中的内部目标位置(HTML 元素的 ID)。URL 不限于基于 Web(HTTP)的文档,也可以使用浏览器支持的任何协议。例如,在大多数浏览器中正常工作的file:
、ftp:和mailto:。
(2)可以使用 href="#top"
或者 href="#"
链接返回到页面顶部(HTML5)
(3)创建一个可点击的图片
<a href="https://developer.mozilla.org/en-US/">
<img src="https://mdn.mozillademos.org/files/6851/mdn_logo.png"
alt="MDN logo" />
</a>
(4)创建一个email链接
<a href="mailto:nowhere@mozilla.org">Send email to nowhere</a>
点击将用户的电子邮件程序打开,让他们发送新邮件
(5)创建电话链接
<a href="tel:+491570156">+49 157 0156</a>
(6)使用download属性将<canvas>保存为PNG格式
如果你想允许用户下载一个HTML画布,你可以创建一个下载属性和画布数据作为文件URL链接图像
var link = document.createElement('a'); link.innerHTML = 'download image'; link.addEventListener('click', function(ev) { link.href = canvas.toDataURL(); link.download = "mypainting.png"; }, false); document.body.appendChild(link);
(7)最好不要滥用<a href="javascript:;"></a>,使用<button></button>代替,<a>最好只用于正常的URL导航
2、Blob
Blob
对象表示一个不可变、原始数据的类文件对象
Blob()构造函数允许用其它对象创建 Blob 对象。比如,用字符串构建一个 blob:
var debug = {hello: "world"}; var blob = new Blob([JSON.stringify(debug, null, 2)], {type : 'application/json'});
使用 Blob 创建一个指向类型化数组的URL
var url = URL.createObjectURL(blob);
// 会产生一个类似blob:d3958f5c-0777-0845-9dcf-2cb28783acaf 这样的URL字符串
// 你可以像使用一个普通URL那样使用它,比如用在img.src上。
3、html元素的id里如果包含斜杠(/),用querySelector()等选择器时会报错,所以要对斜杠进行转义,key.replace('/', '\\/')