Skip to content

Commit 3cc6774

Browse files
author
icodeajk
committed
first commit
1 parent 38f2473 commit 3cc6774

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
---
2+
published: true
3+
title: js代码应该放在HTML的哪里
4+
layout: post
5+
---
6+
7+
8+
## 在哪里放置JavaScript代码?
9+
10+
我最近碰到个问题,load和onload的区别。当中在实验代码时发现js代码的放置顺序会影响js代码的执行。于是我就想知道js代码放在那最合适。
11+
12+
13+
### 放置于<head>之间
14+
15+
这个是通常做法。由于HTML文档是由浏览器从上到下依次载入的。这样放置就保证了使用js脚本之前,它已经被载入了。
16+
17+
18+
```html
19+
<html>
20+
<head>
21+
<script type="text/javascript">
22+
……
23+
JavaScript 代码
24+
……
25+
</script>
26+
</head>
27+
....
28+
```
29+
30+
31+
### 放置于<body>之间
32+
33+
我们假设Javascript代码需要操作HTML元素,而HTML是由浏览器从上到下依次载入的。如果放在<body>的前一部分,就会导致要操作的HTML元素还没载入,以至于报错。因此,我们需要把Javascript代码写在<body>的后一部分。
34+
35+
36+
```html
37+
<html>
38+
<head>
39+
</head>
40+
<body>
41+
</body>
42+
<div id="div1"></div>
43+
<script type="text/javascript">
44+
document.getElementById("div1").innerHTML="测试文字";
45+
</script>
46+
</html>
47+
```
48+
49+
> 提示:如果 HTML 文档声明为 XHTML ,<script></script> 标签必须在 CDATA 部分内声明,否则 XHTML 将把 <script></script> 标签解析为另一个 XML 标签,里面的 JavaScript 代码可能不会正常执行。因此,在严格的 XHTML 中使用 JavaScript 应该像如下示例一样声明:
50+
51+
52+
```html
53+
<html>
54+
<head>
55+
<script type="text/javascript">
56+
<![CDATA[
57+
JavaScript 代码
58+
]]>
59+
</script>
60+
</head>
61+
....
62+
```
63+
64+
65+
### 外部引用JavaScript代码
66+
67+
将JavaScript代码单独形成一个 文档,并以js后缀命名。
68+
69+
```html
70+
<html>
71+
<head>
72+
<script type="text/javascript" src="myscript.js"></script>
73+
</head>
74+
....
75+
```
76+
77+
使用优点:
78+
79+
- 1.避免在 JavaScript 代码里使用 <!-- ... //-->
80+
81+
- 2.避免使用难看的 CDATA
82+
83+
- 3.公共的 JavaScript 代码可以被复用于其他 HTML 文档,也利于 JavaScript 代码的统一维护
84+
85+
- 4.HTML 文档更小,利于搜索引擎收录
86+
87+
- 5.可以压缩、加密单个 JavaScript 文件
88+
89+
- 6.浏览器可以缓存 JavaScript 文件,减少宽带使用(当多个页面同时使用一个 JavaScript 文件的时候,通常只需下载一次
90+
91+
92+
参考文章:[https://www.jb51.net/article/56337.htm](https://www.jb51.net/article/56337.htm)

0 commit comments

Comments
 (0)