《JavaScript高级程序设计》笔记:在HTML中使用Javascript(二)
script元素
向html页面中插入js的主要方法就是使用<script>元素。
使用<script>元素的方式有两种:直接在页面中嵌入js代码和包含外部js文件。
直接在页面中嵌入js代码如下:
<script type="text/javascript"> function sayHi(){ alert("Hi!"); } </script>
外部js文件引入方式:
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
延迟脚本 defer
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Example HTML Page</title> <meta name="description" content=""/> <meta name="keywords" content=""/> <link type="text/css" rel="stylesheet" href="css/reset.css"/> <link type="text/css" rel="stylesheet" href="css/main.css"/> <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> <script type="text/javascript" defer="defer" src="example1.js"></script> </head> <body> <!--这里是内容--> </body> </html>
<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。
在这个例子中,虽然我们把<script>元素放在了文档的<head>元素中,但其中包含的脚本将延迟到浏览器遇到</html>标签后再执行。
异步加载 async
指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容,为此,建议异步脚本不要在加载期间修改DOM。
异步脚本一定会再页面load事件前执行,但可能会再DOMContentLoaded事件触发之前或之后执行。
就是在head标签之间加上代码:
<script type="text/javascript" async src="example1.js"></script>
文档模式
最初的俩种文档模式是:混杂模式(quirks mode)和标准模式(standards mode)。混杂模式会让IE的行为与(包含非标准特性的)IE5相同,而标准模式则让IE的行为更接近标准行为。
如果在文档开始初没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。
noscript元素
包含在<noscript>元素中的内容只有在下列情况下才会显示出来:
-
浏览器不支持脚本
-
浏览器支持脚本,但脚本被禁用
<body> <noscript> <p>本页面需要浏览器支持(启动)JavaScript</p> </noscript> </body>