1.<script> 属性:
charset 可选,通过Src属性指定的代码的字符集,由于多数浏览器忽略它的值,因此这个属性很少有人用。
defer 可选,表示脚本可以延迟到文档完全被解析和显示之后再执行,
language 已废弃,原本用于表示编写代码使用的脚本语言。由于多数浏览器忽略它的值,因此这个属性很少有人用。
src 可以选,表示包含要执行代码的外部文件。
type 必需,可以看成是language的替代属性,表示编写代码 使用的脚本 语言的内容类型(也称为MIME类型),虽然test/javascript 和 text/ecmascript 都已经不被推荐使用,但人们一直以来用的都还是text/javascript.
实际上,服务器在传送javascript文件时,使用的MIME类型通常是application/x-javascript,但在type中设置这个值可能导致脚本被忽略,考虑到约定俗成
和最大限度的渡兼容。任用text/javascript。
2.<script type="text/javascript">
//<![CDATA[
function compare(a,b) { if (a < b)
{alert("a小于b");} else if (a>b) {alert("a大于b");} else
{alert("a等于b");} }
//]]>
</script>
当前使用的解决方案模仿了“对旧浏览器隐藏”代码的方法。使用单行的JavaScript注释"//",可在不影响代码语法的情况下嵌入CDATA段:
现在,这段代码在不支持XHTML的浏览器中也可运行。
但是,为避免CDATA的问题,最好还是用外部文件引入JavaScript代码。
用CDATA段即可以以常规形式(即易读的语法)编写JavaScript代码。
'//<![CDATA[' 和 '//]]>'为了兼容支持xml文档和不支持xml(即只支持html文档)文档的浏览器而设计的。
在支持xml文档中虽然用'//'注释掉代码但xml文档中仍可识别出属于xml的代码<![CDATA[ 和 ]]>,所以代码中有大于'>'小于'<'之类的特殊字符不会发生错误,因为在xml文档中这些都是特殊字符。
而不支持xml文档中,这些大于小于号就不是特殊字符了,由于<![CDATA[ 和 ]]>是xml代码所以不注释掉就会发生错误。
所以上述设计达到了兼容支持xml文档和不支持xml文档的要求。
这个网页是不是xml这要看文档类型声明,如<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
用
<!--
<script type='text/javascript'>
some code..
</script>
-->
这种方法兼容不支持javascript的浏览器,已经过时了,因为现在现代的浏览器都支持javascript