1.</script>标签
在一对<script>和</script>标签内部不可以再出现</script>,否则会引发错误。要解决此问题,可以使用转义字符。例如,下面的代码会出现错误:
<script type=”text/javascript”>
function sayScript(){
alert(“</script>”);
}
</script>
但是,下面的代码不会出现错误:
<script type=”text/javascript”>
function sayScript(){
alert(“<\/script>”); //使用了转义字符
}
</script>
2.XHTML中的JavaScript
(1)XHTML中引入外部脚本的方式如下:
<script type=”text/javascript” src=”example.js” />
(2)XHTML中<script>和</script>内部的脚本中不可出现小于符号“<”,否则会按照XHTML元素的开始标签处理。可以利用XHTML中的CDATA块来解决此问题。考虑到一些浏览器对HTML的兼容性不是很好,因此,在声明CDATA处须使用JavaScript的单行注释,例如:
<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>
3.<script>标签的属性
(1) language 属性不赞成使用,已被 type 属性替代。type 属性在HTML5中不是必须的,但 XHTML 中是必须的。
(2)如果 async 属性为 true,则脚本会相对于文档的其余部分异步执行,这样脚本会可以在页面继续解析的过程中来执行。
如果 async 属性为 false,而 defer 属性为 true,则脚本会在页面完成解析时得到执行。
如果 async 和 defer 属性均为 false,那么脚本会立即执行,页面会在脚本执行完毕继续解析。
async 和 defer 属性只适用于引入外部脚本的 <script> 标签中。最好外部脚本不 会改变HTML文档的DOM结构。
4.<noscript>元素
该元素中可以包含除了 <script> 元素外的任何元素或内容,内容会在不支持JavaScript以及 JavaScript 被禁用的浏览器中被呈现。如果浏览器支持且未禁用JavaScript,则内容不会被呈现。