JS的嵌入方法有3种:

1 利用<script>…</script>加入到HTML中:

<script language="javascript>…</script>(IE Browser支持的脚本有Javascript,Jscript,Vbscript等;)

2 利用SRC属性级联脚本文件:

<script language="javascript" src="cnc/adnews.js">…</script>

3 直接加入到HTML标记:

<body onload="javascript:window.alert("欢迎光临我们的网站")>

<a href="javascript:void(null)" onclick="document.execCommand('SaveAs')">js操作</a>

JS在HTML中的位置

可以放在任何地方(head或body标签内),但以下情况例外:

当我们在代码中定义了函数时,就一定要注意将函数的定义放在对该函数的调用之前;

当浏览器由上到下、由左至右执行HTML代码时,遇到对函数的调用时,如果在调用函数之前,该函数已被定义,浏览器将正确执行该函数;如果函数的定义在函数调用之后,浏览器无法执行该函数;

JS代码在THML中书写的方法

书写的方法不同,其执行的流程也各不相同。

1 <script>,无法操作<script></script>之后的元素,因为之后的元素还未构造,所以JS代码也无法取得之后的DOM元素。

2 读取外部的JS文件,还可以指定defer,async属性去推迟或异步执行。

3 onload:在页面读取完后再对其执行,可以操作全部DOM元素。

<body onload="alert('hello')">

window.onload=function(){alert('hello');};

4 DOM ContentLoaded:onload方法需要等待时间,而本方法可以在完成HTML解析后发生的事件,可以减少等待时间。

5 动态载入JS文件。

6 使用伪代URL:href="javascript:alert("hello")"

script语句什么时候被执行?(决定因素是script语句在文档中的位置);

1 在文档加载时;

2 在文档加载后;

3 根据用户的动作作出响应;

4 当其它script语句调用它时;

执行的次数:

1 一次,即顺序执行一次,

2 调用的次数;

3 定时器按时间间隔执行;

setInterval("functionOrExpr",msecDelay [,funcarg1,…,funcargn])

重复调用某个函数或执行某个表达式,并且对函数或表达式的调用间隔只有固定时间的延迟。

用于按照某个指定的时间间隔去周期触发某个事件,典型的应用包括动态状态栏、动态显示当前时间等,

(TimerID是上面方法返回该时间间隔的引用变量;)

setTimeout()

当你需要在将来某个时间执行一次函数或表达式时。实际应用于警告框的显示时间和状态栏的跑马灯效果、打字效果等。

JS执行时间

element对象上的一个重要的属性集合就是事件处理程序相关的的属性,可以在脚本中为之绑定一个函数,这个函数会在某一个事件发生时以异步的方式调用,事件处理程序可以以JS代码修改窗口文档和组成文档元素的行为,事件处理函数的属性名是以单词“on”开始,如D.onclick=function(){};

window.onload=function(){…};在语句中无任何函数调用)(只能用一次,包括<body onload="";>否则后面的onload会覆盖掉前面的;

(scroll也只能在一处使用)


脚本执行的两个阶段:

1 按它们在文档里出现的顺序顺序招待

2 事件驱动异步执行;


script语句什么时候被执行?(决定因素是script语句在文档中的位置);

1 在文档加载时;

2 在文档加载后;

3 根据用户的动作作出响应;

4 当其它script语句调用它时;


执行的次数:

1 一次,即顺序执行一次,

2 调用的次数;

3 定时器按时间间隔执行;

setInterval("functionOrExpr",msecDelay [,funcarg1,…,funcargn])

重复调用某个函数或执行某个表达式,并且对函数或表达式的调用间隔只有固定时间的延迟。

用于按照某个指定的时间间隔去周期触发某个事件,典型的应用包括动态状态栏、动态显示当前时间等,

(TimerID是上面方法返回该时间间隔的引用变量;)

setTimeout()

当你需要在将来某个时间执行一次函数或表达式时。实际应用于警告框的显示时间和状态栏的跑马灯效果、打字效果等。


事件处理程序

<body [other attributes] onLoad="statement or function">

函数是属于延迟执行的一个指令集;(由两部分组成:函数定义部分和函数调用部分);

<head></head>之间的javascript代码一般用于提前载入,以响应用户的页面动作,一般不影响HTML文档的浏览器显示格局;

<body></body>之间的javascript代码一般用于在页面载入时运行JS代碼生成頁面內容;