script 标签引起的血案

412 阅读1分钟

有一段时间没有写JS代码了,生疏了,然后自己给自己挖了一个坑!
应用中引入了一个JS库,调用函数一直提示:

Uncaught ReferenceError: xxx is not defined

后面通过仔细检查发现是因为引入库时写成了

<script/>   标签自闭合

然后改成

<script src="xxxx.js"></script>

问题修复!

总结:

  1. 为了避免浏览器自闭合兼容问题,所有标签都主动闭合
  2. 自闭合标签来自于XML语法,而不是HTML语法。
  3. 根据现在的HTML语法,只有不需要结束标签的void element(如img之类的),或者是外部元素(如svg)可以使用自闭合。script标签显然不在此列