1、<script>元素
在html中插入javascript的主要方法、html4.0.1中为<script>定义了5个元素
Charset:可选,表示通过scr属性指定代码的字符集,由于大多数浏览器会忽略它的值,因此这个属性很少有人用
Defer:可选,表示脚本可以延迟到文档完全被解析和显示之后在执行,也就是说脚本会被延迟到整个页面的都解析完毕后在运行,实际上是把<script>元素放到页面的最底部的效果是一样的,但只有IE和firefox3.5+支持该属性
Language:已废弃,用来表示编写代码使用的脚本语言(如:javascript,vbscript)但大多数浏览器会忽略这个属性,因此也没有必要再用了。
Src:可选,表示要包含执行代码的文件
Type:必须,可以看成language的替代属性,考虑到最大限度的浏览器兼容,目前type属性的值依旧还是text/javascrip
<script type=’text/javascript’ src=”www.xx.com/xx.js”>
这样位于外部域中国的代码也会被加载执行
2、标签的位置
按照惯例,所有的<script>元素都应该放在页面的<head>元素中,这种做法的目的,就是把外部的文件(包含css、javascript)的引用都放在相同的地方,这样就意味着必须等到全部javascript代码都被下载、解析和执行完之后,才开始呈现页面的内容(浏览器在遇到<body>标签时才开始呈现内容),对于那么需要很多js的代码的页面,这无疑会导致浏览器在呈现页面时出现明显的延迟,而延迟期间的浏览器窗口将是一遍空白。所以为避免这个问题一般都把js引用放在<body>元素中、放在页面的内容的后面。
3、不推荐使用的语法
在最早引入<script>元素的时候,该元素与传统的HTML解析规则是有冲突时,不支持javascript的浏览器会把<script>元素的内容直接输出到页面中。
Netscape与Mosaic协商提出一个解决办法,让不支持<script>元素的浏览器能够隐藏嵌入javascript代码,想下面这样
<script>
<!—
Function sayHi(){
Alert(‘Hi’);
}
//-->
</scirpt>
给脚本加上html注释后,Mosaic等不支持javascript浏览器就会忽略<script>标签中的内容,虽然这种注释的格式得到了所有浏览器的认可也能被正确解释,但由于所有浏览器都已经支持javascript,因此也没有必要再使用这种格式了。
4、嵌入代码与外部文件
在html中嵌入javascript代码虽然没有问题,但最好的做法还是尽可能的使用外部文件来包含javascript代码,不是必须的,但支持使用外部文件的人会强调如下优点
1、 可维护性:遍及不同的javascript会造成维护问题,但把所有的javascript文件都放在一个文件夹内,维护起来就会轻松很多。
2、 可缓存:浏览器能够根据具体的设置换成链接中所有外部的javascript文件,也就是说有两个页面都使用同一个文件,那么这个文件只被下载一次。就是能够加快页面的加载速度
5、<noscript>元素
当浏览器不支持javascript时<noscript>元素中的内容才会被显示出来或者脚本被禁用也会被显示出来,如果浏览器支持javascript则浏览器不会显示该元素中的任何内容