# 2.3.1 script标签
### 2.3.1 script标签
HTML文档一般通过`<script></script>`标签引入JavaScript代码。例如:
```
<html>
<head>
<meta charset="utf-8" />
<title>你好</title>
</head>
<body>
<button id="btn1">点我</button>
<script>
var btn = document.getElementById('btn1');
btn.onclick = function() {
document.body.innerHTML = '<h1>你好,JavaScript!</h1>';
};
</script>
</body>
</html>
```
但我们一般把JavaScript代码放在一个单独的文件里,并从HTML文档里引用它[1](#fn_1)。例如:
```
<html>
<head>
<meta charset="utf-8" />
<title>你好</title>
</head>
<body>
<button id="btn1">点我</button>
<script src=”hello.js”></script>
</body>
</html>
```
其中hello.js的内容是:
```
var btn = document.getElementById('btn1');
btn.onclick = function() {
document.body.innerHTML = '<h1>你好,JavaScript!</h1>';
};
```
读者应试着运行一下以上两个示例,看看是什么效果。
另外,`<script></script>`标签还可以包含在`<head></head>`标签里。读者可以修改示例代码,看看结果有什么不同,并研究一下原因[2](#fn_2)。
> 1. 在上文CSS的部分我们提到“样式(代码)与内容(代码)相分离”的原则,在此我们遵循类似的规则,即“行为(代码)与内容(代码)相分离”。至此,内容(HTML),样式(CSS)和行为(JavaScript)都已登场,它们相互“独立”又关联。读者可在实践中细细体会。[↩](#reffn_1 "Jump back to footnote [1] in the text.")
> 2. 一般浏览器都有JavaScript调试器(debugger)。如果你遇到了问题,不妨打开调试器看看原因是什么。不同浏览器的调试器打开方式不同,请查找一下。[↩](#reffn_2 "Jump back to footnote [2] in the text.")
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超链接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客户端请求
- 1.5.2 服务器应答
- 1.5.3 进一步了解HTTP
- 1.6 HTTPS
- 2 Web浏览器
- 2.1 HTML
- 2.1.1 文档类型声明
- 2.1.2 标签和属性
- 2.1.3 文档结构
- 2.1.4 DOM
- 2.1.5 进一步了解HTML
- 2.2 CSS
- 2.2.1 样式与样式表
- 2.2.2 样式表语法
- 2.2.3 级联样式表
- 2.2.4 进一步了解CSS
- 2.3 JavaScript
- 2.3.1 script标签
- 2.3.2 操纵DOM
- 2.3.3 jQuery
- 2.3.4 进一步了解JavaScript
- 2.4 Ajax
- 2.5 移动设备与响应式Web设计
- 3 Web服务器
- 3.1 方法与资源
- 3.2 状态代码
- 3.3 静态内容与动态内容
- 3.4 编程语言与技术
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服务器架构
- 3.7 Web缓存
- 3.8 服务器推送
- 4 数据库
- 4.1 关系型数据库
- 4.2 NoSQL数据库
- 5 Web服务器的其他组件
- 5.1 Cron
- 5.2 消息队列
- 5.3 邮件服务器
- 6 开发工具与技术
- 6.1 Git
- 6.1.1 Git基础操作
- 6.1.2 Git基本原理
- 6.1.3 进一步了解Git
- 6.2 敏捷开发