记HTML5 标签的一个小坑
把<a>标签换成别的标签,尝试了<button>标签,结果点击按钮后,download函数就可以正常执行了,说明download函数是存在的,问题还出在<a>上。
把<button>改回<a>,修改download函数名为download1,结果download1是可以正常执行的。再联系Uncaught TypeError: download is not a function,怀疑<a>标签onclick方法执行时,查找到的download并非外部定义的download函数,onclick执行时的上下文对象应该已经存在download的定义了,且这个定义是一个属性,而不是函数。
于是查了下w3c的文档,www.w3school.com.cn/tags/att_a_…真相大白了,原来html 5 中的 标签新增了一个download属性,规定被下载的超链接目标。所以,onclick执行时,download指向的是 标签对象中的download属性,因此才会抛出上面的错误。
既然找到了问题的原因,除了避免使用download作为函数名外,很容易想到另外一个解决方案,通过window引用download函数:
来源: https://juejin.im/post/59dec7d66fb9a04527249457