<script>元素
属性
async:可选。async 属性规定一旦脚本可用,则会异步执行,表示应该立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。async 属性仅适用于外部脚本(只有在使用 src 属性时)。
charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值因此很少用。
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。最好只包含一个延迟脚本。HTML5 的实现会忽略给嵌入脚本设置的 defer 属性。
src:可选。表示包含要执行代码的外部文件。
type:可选。可以看成language的替代属性,表示编写代码使用的脚本语言的内容类型(也称MIME类型)。服务器在传送JavaScript文件时使用的MIME类型通常是application/x-javascript。
包含在<script>元素内部的js代码将被从上至下依次解释。解释器会将解释的函数、变量保存在自己的环境中,在解释器对<script>元素内部的所有代码求值完毕以前,页面中的其余内容不会被浏览器加载或显示。
因为按照嵌入式代码的规则,当浏览器遇到字符串"</script>"时,就会认为那是结束的标签,而通过转义字符"/"可以解决这个问题。
1 2 3 4 5 | <script> window.onload = function (){ alert( "</script>" ); } </script> |
服务器通常需要看扩展名决定为响应应用哪种MIME类型。如果不使用.js扩展名,请确保服务器能返回正确的MIME类型。
带有 src 属性的<script>元素不应该在其<script>和</script>标签之间再包含额外的 JavaScript 代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。
XHTML中的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type= "text/javascript" > //<![CDATA[ function compare(a, b) { if (a < b) { alert( "A is less than B" ); } else if (a > b) { alert( "A is greater than B" ); } else { alert( "A is equal to B" ); } } //]]> </script> |