JS 代码可以在 head 区或 body 区, 但有些区别.
JS 随网页的其他元素顺序载入, 载入后先经过一次语法检查, 然后顺序执行;
如果 JS 中不包含 document.write 或 document.writeln 语句, 写在 head 区比较好, 会先执行. 演示区别:
网页中可以有多个 JS 代码块, 代码块的写法是:
<script type="text/javascript"></script> (目前常用的)
<script type="application/javascript"></script> (较新的规定, 旧浏览器未必支持)
<script language="JavaScript1.5"></script> (已淘汰的方法, 其中指定的版本号也基本没被支持过)
其实目前的客户端脚本也只有 JavaScript 和 VBScript, 好像浏览器会先假定是 JS, 所以可简写为:
<script></script>
但如果网页提前指定了页面的默认脚本, 如:
<meta http-equiv:="Content-Script-Type" content="text/javascript">
如果默认脚本不一致, 那给 script 指定 type 就是必要的了.
使用更多的还是链接外部脚本, 这样可以实现代码与页面分离:
<script src ="xxx.js"></script>
<script type="text/javascript" src ="xxx.js"></script>
JS 还可以直接写在网页标签所支持的事件中, 也可以写在标签 A 的 href 和 标签 FORM 的 action 属性中;
另外, 标签事件中的 JS 代码可以省略 "javascript:" 的前缀. 举例:
JS 代码一般是写在函数里等待调用, 调用时可用 return 关键字也可省略;
在 href 和 action 属性中调用时还是要冠上 "JavaScript:". 演示:
也可以将这些代码分离, 这在调用外部 js 时特别需要, 但这要注意顺序, 在使用对象时得确保对象已经存在. 举例:
从上个例子中看出, 如果在 JS 代码中使用网页中的对象, 必须要等对象建立以后, 这有点不方便.
如果在 <script> 标签中加入关键字 defer 即可让该段代码最后执行, 像这样: <script defer></script>
所谓最后执行, 是在所有网页代码载入完毕之后, 但并不是网页所有元素(譬如 src 指向的图片)都载入完成之后;
其最迟也会发生在 onload 事件之前.
另外, 识别网页中的元素可以用 ID 或 name 属性, 以后会有更多手段. 示例: