你还认为JavaScript只能制作网页特效,那就大错特错了。现在网络领域最流行的理念是Web 2.0,而该理念的技术核心是Ajax,Ajax的核心是JavaScript。所以说JavaScript是网络的核心的核心!
目前大部分JavaScript书籍还停留在对象介绍、属性说明的阶段,并没有结合当前Web 2.0的趋势,讲解Ajax、正则表达式、XMLHttp等应用,而这些技术才是企业所需要的。本书正是适应这种趋势,在保证你掌握了JavaScript的基础知识、基本编程以后,学习各种高级技术。想了解本书优势详见前言。
第一篇 JavaScript入门篇
第1章 JavaScript语言概述 2
1.1 JavaScript是什么 2
1.1.1 JavaScript简史 2
1.1.2 JavaScript有何特点 3
1.2 JavaScript能做什么 4
1.2.1 表单数据合法性验证 4
1.2.2 页面特效 4
1.2.3 交互式菜单 5
1.2.4 动态页面 5
1.2.5 数值计算 6
1.3 JavaScript编程起步 7
1.3.1 “Hello World!”程序 7
1.3.2 选择JavaScript脚本编辑器 8
1.4 如何引入JavaScript脚本代码 8
1.4.1 通过与标记对
1.4.1 引入 8
1.4.2 通过标记的src属性引入 9
1.4.3 通过JavaScript伪URL引入 10
1.4.4 通过HTML文档事件处理程序
1.4.1 引入 11
1.5 嵌入JavaScript脚本代码的位置 12
1.5.1 在与标记对之间
1.4.1 放置 12
1.5.2 在与标记对之间
1.4.1 放置 12
1.5.3 在两个标记对之间混合放置 13
1.6 选择合适的浏览器 13
1.7 处理不支持JavaScript脚本的情况 15
1.7.1 使用<!--和-->标记对直接屏蔽法 15
1.7.2 使用和标记
1.4.1 对给出提示信息 16
1.8 JavaScript的实现基础 16
1.8.1 ECMAScript 16
1.8.2 DOM 17
1.8.3 BOM 18
1.9 客户端与服务器端脚本 18
1.10 JavaScript与JScript、VBScript 19
1.11 JavaScript与Java、Java Applet 20
1.12 JavaScript的未来如何 21
1.13 本章小结 22
第2章 JavaScript语言基础 23
2.1 编程准备 23
2.1.1 编程术语 23
2.1.2 脚本执行顺序 24
2.1.3 大小写敏感 24
2.1.4 空白字符 24
2.1.5 分号 24
2.1.6 块 25
2.2 数值类型 25
2.2.1 整数型和浮点型数值 25
2.2.2 八进制和十六进制 25
2.3 变量 26
2.3.1 变量标识符 26
2.3.2 变量声明 26
2.3.3 变量作用域 26
2.4 弱类型 28
2.5 基本数据类型 29
2.5.1 Number型 29
2.5.2 String型 29
2.5.3 Boolean型 30
2.5.4 Undefined型 30
2.5.5 Null型 30
2.5.6 Function型 30
2.6 组合类型 30
2.6.1 Array型 31
2.6.2 Object型 32
2.7 运算符 33
2.7.1 赋值运算符 33
2.7.2 基本数学运算符 35
2.7.3 位运算符 37
2.7.4 位移运算符 38
2.7.5 自加和自减 39
2.7.6 比较运算符 41
2.7.7 逻辑运算符 42
2.7.8 逗号运算符 42
2.7.9 空运算符 44
2.7.10 ?...:运算符 44
2.7.11 对象运算符 45
2.7.12 typeof运算符 47
2.7.13 运算符优先级 48
2.8 核心语句 49
2.8.1 基本处理流程 50
2.8.2 if条件假设语句 50
2.8.3 switch流程控制语句 51
2.8.4 for循环语句 53
2.8.5 while和do-while循环语句 53
2.8.6 使用break和continue进行循环
1.4.1 控制 55
2.8.7 with对象操作语句 56
2.8.8 使用for…in进行对象循环 56
2.8.9 含标签的语句 57
2.9 函数 59
2.9.1 函数的基本组成 59
2.9.2 全局函数与局部函数 60
2.9.3 作为对象的函数 63
2.9.4 函数递归调用 65
2.9.5 语言注释语句 67
2.9.6 函数应用注意事项 67
2.10 本章小结 68
第3章 JavaScript事件处理 69
3.1 什么是事件 69
3.2 HTML文档事件 70
3.2.1 事件捆绑 70
3.2.2 浏览器事件 71
3.2.3 HTML元素事件 72
3.2.4 IE扩展的事件 76
3.3 JavaScript如何处理事件 78
3.3.1 匿名函数 78
3.3.2 显式声明 79
3.3.3 手工触发 81
3.4 事件处理器的返回值 82
3.5 事件处理器设置的灵活性 84
3.6 现代事件模型与Event对象 86
3.7 IE4中的Event对象 87
3.7.1 对象属性 87
3.7.2 事件上溯 89
3.7.3 阻止事件上溯 91
3.7.4 事件改向 93
3.8 NN4中的Event对象 95
3.8.1 对象属性 95
3.8.2 事件捕获 96
3.8.3 关闭事件捕获 98
3.8.4 事件传递 98
3.9 DOM的解决之道 99
3.9.1 事件流方向 100
3.9.2 Event对象 100
3.9.3 事件类型 101
3.10 本章小结 101
第4章 JavaScript基于对象编程 102
4.1 面向对象编程与基于对象编程 102
4.1.1 什么是对象 102
4.1.2 面向对象编程 103
4.1.3 面向对象编程:继承 103
4.1.4 面向对象编程:封装 103
4.1.5 面向对象编程:多态 104
4.1.6 基于对象编程 104
4.2 JavaScript对象的生成 105
4.2.1 HTML文档结构 105
4.2.2 DOM框架 106
4.2.3 顶级对象之间的关系 107
4.2.4 浏览器载入文档时对象的生成 108
4.3 JavaScript核心对象 110
4.4 文档对象的引用 110
4.4.1 通过对象位置访问文档对象 110
4.4.2 通过name属性访问文档对象 112
4.4.3 通过id属性访问文档对象 113
4.4.4 通过联合数组访问文档对象 115
4.5 创建和使用自定义对象 116
4.5.1 通过定义对象的构造函数的
1.4.1 方法 116
4.5.2 通过对象直接初始化的方法 118
4.5.3 修改、删除对象实例的属性 119
4.5.4 通过原型为对象添加新属性和
1.4.1 新方法 120
4.5.5 自定义对象的嵌套 122
4.5.6 内存的分配和释放 124
4.6 本章小结 124
第5章 文档对象模型(DOM) 125
5.1 DOM概述 125
5.1.1 基本对象模型 127
5.1.2 Netscape Navigator浏览器扩展 127
5.1.3 Internet Explorer浏览器扩展 130
5.1.4 Opera、Mozilla和其他浏览器
1.4.1 扩展 132
5.1.5 W3C DOM 133
5.1.6 W3C DOM规范级别 133
5.2 文档对象模型的层次 134
5.3 文档对象的产生过程 135
5.4 对象的属性和方法 136
5.4.1 何谓节点 136
5.4.2 元素节点(element node) 136
5.4.3 文本节点(text node) 137
5.4.4 属性节点(attribute node) 137
5.4.5 对象属性 137
5.4.6 id属性和class属性 140
5.4.7 通过id属性返回指定对象 142
5.4.8 通过元素标签返回指定对象 142
5.4.9 通过name属性返回指定对象 143
5.4.10 获取特定属性的取值 144
5.4.11 设置特定属性的取值 144
5.4.12 删除特定的属性 145
5.5 附加的节点处理方法 146
5.5.1 生成节点 147
5.5.2 插入和添加节点 148
5.5.3 复制节点 152
5.5.4 删除和替换节点 154
5.5.5 文本节点操作 157
5.6 对象的事件处理程序 159
5.7 浏览器兼容性策略 160
5.8 本章小结 161
第6章 String、Math、Array等数据对象 162
6.1 String对象 162
6.1.1 如何使用String对象方法操作
1.4.1 字符串 162
6.1.2 获取目标字符串长度 163
6.1.3 连接两个字符串 164
6.1.4 验证电子邮件地址的合法性 165
6.1.5 返回指定位置的字符串 167
6.1.6 在URL中定位字符串 168
6.1.7 分隔字符串 170
6.1.8 将字符串标记为HTML语句 172
6.1.9 常见属性和方法汇总 174
6.2 Math对象 175
6.2.1 基本数学运算 175
6.2.2 任意范围随机数发生器 177
6.2.3 访问其基本属性 178
6.2.4 使用with声明简化表达式 179
6.2.5 常见属性汇总 180
6.2.6 常见方法汇总 181
6.3 Array对象 182
6.3.1 创建数组并访问其特定位置
1.4.1 元素 182
6.3.2 数组中元素的顺序问题 183
6.3.3 模拟堆栈和队列操作的方法 185
6.3.4 使用splice()方法添加和删除
1.4.1 数组元素 187
6.3.5 修改length属性更改数组 189
6.3.6 调用Array对象的方法生成
1.4.1 字符串 191
6.3.7 连接两个数组 192
6.3.8 常见属性和方法汇总 193
6.4 Date对象 195
6.4.1 生成日期对象的实例 195
6.4.2 提取日期各字段 197
6.4.3 设置日期各字段 199
6.4.4 将日期转化为字符串 201
6.4.5 常见属性和方法汇总 203
6.5 Number对象 204
6.5.1 创建Number对象的实例 204
6.5.2 将Number对象转化为字符串 205
6.5.3 通过原型属性为对象添加
1.4.1 属性和方法 206
6.5.4 常见属性和方法汇总 207
6.6 Boolean对象 208
6.6.1 创建Boolean对象的实例 208
6.6.2 将Boolean对象转化为字符串 210
6.6.3 常见属性和方法汇总 211
6.7 Function对象 211
6.7.1 两个概念:Function与function 211
6.7.2 使用Function对象构造函数 212
6.7.3 常见属性和方法汇总 213
6.8 Object对象 213
6.8.1 创建Object对象的实例 213
6.8.2 常见属性和方法列表 215
6.9 本章小结 215
第7章 Window及相关顶级对象 216
7.1 顶级对象模型参考 216
7.2 Window对象 216
7.2.1 警告框 217
7.2.2 确认框 217
7.2.3 提示框 218
7.2.4 实例:学生信息采集系统 219
7.2.5 设定时间间隔 223
7.2.6 事件超时控制 225
7.2.7 创建和管理新窗口 227
7.2.8 常见属性和方法汇总 230
7.3 Navigator对象 232
7.3.1 获取浏览器信息 232
7.3.2 常见方法和属性汇总 234
7.4 Screen对象 235
7.4.1 获取客户端屏幕信息 235
7.4.2 定位窗口到指定位置 237
7.4.3 常见属性和方法汇总 240
7.5 History对象 241
7.5.1 使用back()和forward()方法
1.4.1 进行站点导航 241
7.5.2 使用go()方法进行站点导航 243
7.5.3 常见属性和方法汇总 245
7.6 Location对象 246
7.6.1 统一资源定位器(URL) 246
7.6.2 Location对象属性与URL的
1.4.1 对应 247
7.6.3 使用reload()方法重载页面 249
7.7 Frame对象 251
7.7.1 框架集文档中对象的结构 251
7.7.2 控制指定的框架 252
7.7.3 常见属性和方法汇总 257
7.7.4 Frameset对象 258
7.7.5 iframe元素对象 262
7.8 Document对象 267
7.9 本章小结 267
第8章 Document对象 268
8.1 对象模型参考 268
8.2 Document对象 269
8.2.1 获取目标文档信息 269
8.2.2 设置文档颜色值 273
8.2.3 往文档中写入新内容 275
8.2.4 常见属性和方法汇总 280
8.3 body元素对象 282
8.3.1 获取body元素对象信息 282
8.3.2 常见属性和方法汇总 283
8.4 本章小结 284
第9章 anchor对象和link对象 285
9.1 对象之间关系 285
9.2 anchor对象 287
9.3 link对象 288
9.3.1 更改href属性默认行为 288
9.3.2 获取href属性详细信息 290
9.3.3 常见属性汇总 291
9.4 本章小结 292
第10章 image、area和map对象 293
10.1 image对象 293
10.1.1 对象访问 294
10.1.2 获取对象的信息 294
10.1.3 使用image对象缓存图片 296
10.1.4 常见属性和方法汇总 297
10.2 area对象和map对象 299
10.2.1 area对象 299
10.2.2 map对象 300
10.2.3 图片区域映射 301
10.3 本章小结 302
第11章 style和styleSheet对象 303
11.1 样式表导入方法 303
11.1.1 直接嵌入样式信息 303
11.1.2 通过@import选择符附加法 304
11.1.3 使用link关键字链接外部
11.1.3 样式表 304
11.2 style相关对象集合 305
11.2.1 style元素对象和styleSheets
11.1.3 对象数组 305
11.2.2 rule对象和cssRule对象 306
11.2.3 style元素对象和style对象 306
11.3 style元素对象 307
11.4 styleSheets对象数组 307
11.5 rule对象和cssRule对象 309
11.5.1 常见属性和方法汇总 309
11.5.2 返回和设置样式表信息 310
11.6 style对象 313
11.6.1 属性值类型 314
11.6.2 文本属性 315
11.6.3 定位属性 316
11.6.4 边界属性 318
11.7 filter对象 320
11.7.1 滤镜访问 320
11.7.2 alpha滤镜 323
11.7.3 blur滤镜 324
11.7.4 chroma滤镜 326
11.7.5 dropShadow滤镜 327
11.7.6 flipH滤镜 328
11.7.7 flipV滤镜 329
11.7.8 glow滤镜 329
11.7.9 gray滤镜 331
11.7.10 invert滤镜 331
11.7.11 light滤镜 332
11.7.12 mask滤镜 335
11.7.13 shadow滤镜 336
11.7.14 wave滤镜 337
11.7.15 xRay滤镜 337
11.8 本章小结 338
第12章 定位对象和嵌入对象 339
12.1 定位对象 339
12.1.1 div对象 339
12.1.2 div对象的浏览器兼容性 341
12.1.3 通过style关键字访问div对象 341
12.1.4 span对象 345
12.1.5 使用span对象生成雪花效果 346
12.2 嵌入对象 348
12.2.1 applet元素对象 348
12.2.2 embed元素对象 351
12.2.3 object元素对象 351
12.3 本章小结 353
第13章 HTML元素对象 354
13.1 表单对象 354
13.2 form元素对象 355
13.2.1 对象访问途径 355
13.2.2 表单数据传递 355
13.2.3 完全引用法 356
13.2.4 使用this.form作为参数传递 356
13.2.5 直接传递法 356
13.2.6 对象测试程序 357
13.2.7 常见属性和方法汇总 359
13.3 text、hidden、password和textarea
13.3 元素对象 360
13.3.1 text元素对象 360
13.3.2 hidden元素对象 365
13.3.3 password元素对象 365
13.3.4 textarea元素对象 366
13.4 button、reset和submit元素对象 368
13.4.1 button元素对象 368
13.4.2 reset元素对象 370
13.4.3 submit元素对象 370
13.4.4 用户注册实例 371
13.5 checkbox和radio元素对象 372
13.5.1 checkbox元素对象 372
13.5.2 radio元素对象 373
13.5.3 学籍注册实例 374
13.6 select和option元素对象 376
13.6.1 select元素对象 376
13.6.2 option元素对象 378
13.6.3 动态更新下拉列表
11.1.3 (NN3+和IE4+) 379
13.6.4 动态更新下拉列表
11.1.3 (NN6+和IE5+) 382
13.6.5 动态更新下拉列表
11.1.3 (W3C DOM) 384
13.7 fieldset、legend和label元素对象 386
13.7.1 fieldset和legend元素对象 386
13.7.2 label元素对象 387
13.8 表格对象 388
13.8.1 table元素对象 389
13.8.2 thead、tbody和tfoot元素对象 393
13.8.3 tr、td和th元素对象 395
13.8.4 caption元素对象 398
13.8.5 col和colgroup元素对象 400
13.9 列表对象 402
13.9.1 ol元素对象 402
13.9.2 ul元素对象 403
13.9.3 li元素对象 404
13.9.4 dl、dt和dd元素对象 405
13.10 文本属性对象 405
13.10.1 blockquote和q元素对象 406
13.10.2 br元素对象 406
13.10.3 font元素对象 406
13.10.4 h1-h6元素对象 409
13.10.5 hr元素对象 410
13.10.6 marquee元素对象 412
13.10.7 Text和TextNode元素对象 415
13.11 本章小结 416
第二篇 JavaScript进阶篇
第14章 正则表达式 418
14.1 正则表达式简介 418
14.2 如何使用正则表达式 419
14.3 RegExp对象 421
14.3.1 RegExp对象的创建 421
14.3.2 实例属性 422
14.3.3 静态属性 422
14.3.4 属性应用实例 423
14.4 正则表达式的操作方法 425
14.4.1 test()方法 425
14.4.2 exec()方法 426
14.4.3 compile()方法 426
14.4.4 RegExp对象中三种方法综合
11.1.3 举例 427
14.4.5 search()方法 428
14.4.6 match()方法 429
14.4.7 replace()方法 431
14.4.8 split()方法 433
14.4.9 小结 435
14.5 简单模式 435
14.5.1 普通字符 435
14.5.2 特殊字符 436
14.5.3 字符类 436
14.5.4 量词 438
14.5.5 贪婪模式 439
14.5.6 非贪婪模式 439
14.5.7 简单模式综合举例 439
14.6 复杂模式 441
14.6.1 分组 441
14.6.2 反向引用 441
14.6.3 候选 442
14.6.4 非捕获性分组 442
14.6.5 正向前瞻 442
14.6.6 负向前瞻 443
14.6.7 边界定位符 443
14.6.8 正则表达式中操作符的优先权
11.1.3 顺序 443
14.6.9 复杂模式综合实例 444
14.7 基本操作实例 446
14.7.1 验证日期 446
14.7.2 验证信用卡号 447
14.7.3 验证电子邮件地址 449
14.8 一些常用的正则表达式 451
14.9 本章小结 452
第15章 JavaScript中的XML 453
15.1 XML简介 453
15.1.1 什么是XML 453
15.1.2 一个简单的XML文档 454
15.1.3 一个相对完整的XML文档 455
15.1.4 构建良构的XML文档准则 456
15.1.5 XML的显示 457
15.1.6 XML小结 458
15.2 JavaScript中的XML DOM 458
15.2.1 XML DOM 459
15.2.2 XML DOM树型结构 459
15.3 Microsoft IE对XML DOM的
15.3 支持 460
15.3.1 创建XML DOM 461
15.3.2 装载XML文档 462
15.3.3 读取XML文档 463
15.3.4 XML文档有效性检查 465
15.3.5 节点操作 466
15.4 Mozilla Firefox对XML DOM的
14.6 支持 471
15.4.1 创建XML DOM 471
15.4.2 装载 471
15.4.3 读取XML文档 472
15.4.4 错误处理 473
15.5 智能XML DOM 475
15.6 JavaScript中的XPath 478
15.6.1 XPath简介 479
15.6.2 JavaScript中使用Xpath
11.1.3 (Microsoft IE) 479
15.6.3 JavaScript中XPath查询
11.1.3 实例(Microsoft IE) 480
15.6.4 Mozilla Firefox对XPath的
11.1.3 支持 483
15.7 JavaScript对XSLT的支持 486
15.7.1 JavaScript中使用XSLT
11.1.3 (Mocrosoft IE) 486
15.7.2 JavaScript中使用XSLT
11.1.3 (Mozilla Firefox) 488
15.8 本章小结 491
第16章 客户端与服务器端通信 492
16.1 HTTP请求 492
16.1.1 XMLHttp对象简介 492
16.1.2 XMLHttp对象的属性和方法 492
16.1.3 使用XMLHttp对象发送请求 495
16.1.4 GET请求 495
16.1.5 POST请求 496
16.2 LiveConnect请求 497
16.3 LiveConnect请求中的get方法 498
16.3.1 创建java.net.URL实例对象 498
16.3.2 打开一个输入流,准备接受
11.1.3 数据 498
16.3.3 创建一个Reader,准备读取
11.1.3 数据 499
16.3.4 处理服务器返回的数据 499
16.3.5 关闭Reader,返回
11.1.3 responseText 499
16.3.6 调用LiveConnect请求的
16.3.6 get方法 500
16.4 LiveConnect请求中的post方法 500
16.4.1 建立连接,设置环境变量 500
16.4.2 发送参数请求 501
16.4.3 接收处理数据 501
16.4.4 调用LiveConnect请求的
16.3.6 post方法 502
16.5 智能HTTP请求 502
16.5.1 智能GET请求 503
16.5.2 智能POST请求 504
16.6 Windows Cookie 505
16.6.1 什么是Cookie 505
16.6.2 Cookie的结构 506
16.6.3 建立Cookie 507
16.6.4 读取Cookie 507
16.6.5 删除Cookie 508
16.6.6 Cookie应用实例:记录
16.3.6 用户名和访问次数 508
16.6.7 服务器端的Cookie操作 511
16.6.8 客户端和服务器端的
16.3.6 Cookie传递 511
16.6.9 Cookie的安全性 514
16.6.10 如何禁止Cookie 514
16.7 本章小结 515
第17章 JavaScript与Ajax技术 516
17.1 什么是Ajax 516
17.1.1 Ajax的定义 516
17.1.2 Ajax的诞生与发展 517
17.2 为什么需要Ajax 517
17.2.1 传统的Web框架 517
17.2.2 Ajax技术框架 518
17.2.3 Ajax的优势 519
17.3 Ajax核心技术 520
17.3.1 JavaScript 520
17.3.2 XMLHttpRequest 520
17.3.3 DOM 520
17.3.4 XML 521
17.4 Ajax应用实例 521
17.4.1 Google 主页 521
17.4.2 Google Maps 522
17.5 Ajax应用场景 523
17.5.1 数据验证 523
17.5.2 按需读取数据 524
17.5.3 自动实时更新页面 524
17.6 使用Ajax 524
17.6.1 创建XMLHttpRequest对象 525
17.6.2 向服务器发送请求 525
17.6.3 处理服务器响应 526
17.6.4 完整的Ajax框架 526
17.6.5 开山之作:“Hello,Ajax”
16.3.6 程序 528
17.6.6 注册信息实时验证实例 530
17.6.7 级联目录实例 537
17.6.8 自动实时更新页面 540
17.6.9 小结 543
17.7 Ajax的不足之处 543
17.8 本章小结 544
第三篇 JavaScript高级篇
第18章 JavaScript错误与异常处理 546
18.1 为何进行错误处理 546
18.2 错误与异常的关系 546
18.2.1 错误 547
18.2.2 异常 547
18.2.3 错误和异常的异同点 548
18.3 不同浏览器环境中的错误报告 548
18.3.1 Windows IE 549
18.3.2 Mozilla Firefox 550
18.3.3 MacOS Safari 551
18.3.4 MacOS IE 551
18.3.5 Opera 7 551
18.3.6 小结 551
18.4 使用onerror事件进行错误处理 551
18.4.1 onerror事件 552
18.4.2 onerror错误处理方法 552
18.4.3 onerror错误处理方法的优缺点 554
18.5 使用try/catch结构进行错误处理 554
18.5.1 try/catch结构 554
18.5.2 Error对象 556
18.5.3 嵌套try/catch结构 557
18.5.4 throw抛出异常 557
18.6 脚本代码调试 558
18.6.1 使用alert语句跟踪调试 558
18.6.2 使用Java控制台 560
18.6.3 使用Microsoft Script
16.3.6 Debugger调试器 560
18.6.4 使用Venkman调试器 563
18.7 本章小结 566
第19章 JavaScript与插件通信 567
19.1 浏览器插件 567
19.1.1 流行的浏览器插件 567
19.1.2 检测已安装的插件 568
19.2 JavaScript与Java Applet通信 569
19.2.1 JavaScript脚本访问Java
16.3.6 Applet 569
19.2.2 Java Applet访问JavaScript
16.3.6 脚本 571
19.2.3 Java Applet安全性问题与措施 574
19.3 JavaScript与Flash通信 575
19.3.1 JavaScript脚本访问Flash 575
19.3.2 Flash访问JavaScript脚本 577
19.3.3 getURL()函数 577
19.3.4 fsCommand()函数 578
19.3.5 综合应用实例 579
19.4 本章小结 581
第20章 JavaScript脚本的安全性 582
20.1 何谓安全性 582
20.1.1 安全性分类 582
20.1.2 历史安全措施 583
20.1.3 同源政策 583
20.1.4 数据感染 583
20.1.5 数字签名 584
20.1.6 总体解决方案 585
20.2 JavaScript代码安全性 585
20.2.1 使用内建函数 585
20.2.2 使用转义字符“\” 587
20.2.3 使用工具软件 588
20.2.4 使用加密算法 589
20.3 JavaScript资源访问安全性 590
20.3.1 创建ActiveXObject 对象 591
20.3.2 Scripting.FileSystemObject
20.3.2 对象 592
20.3.3 文件操作 592
20.3.4 文件夹操作 592
20.3.5 驱动器操作 593
20.3.6 安装、开启和关闭FSO 594
20.3.7 Scripting.Dictionary对象 595
20.3.8 WScript.shell对象 596
20.3.9 注册表操作 596
20.3.10 执行应用程序 598
20.3.11 与网络进行交互 599
20.3.12 与Microsoft Word进行交互 599
20.3.13 与Microsoft Excel进行交互 601
20.3.14 小结 602
20.4 JavaScript执行安全性 603
20.5 本章小结 603
第21章 游戏编程入门与实例 604
21.1 俄罗斯方块游戏 604
21.1.1 游戏操作 604
21.1.2 胜负判定 604
21.2 框架文件“Russia Tetris.html” 605
21.3 脚本文件“Russia Tetris.js” 606
21.3.1 常量声明和变量设定 607
21.3.2 初始化游戏区和下一方块
21.3.2 显示区 607
21.3.3 开始游戏和随机选择方块 608
21.3.4 消隐方块和计算当前得分 610
21.3.5 响应用户按键动作 611
21.3.6 移动当前方块 611
21.3.7 旋转当前方块为其下一状态 612
21.3.8 变换位置并判断是否到达
21.3.8 边界 613
21.3.9 消隐满足条件的行 614
21.3.10 游戏暂停和重新开始 616
21.3.11 判断游戏是否结束 616
21.4 键盘键码值 617
21.5 本章小结 618
附录A JavaScript脚本语言关键字 619
附录B JavaScript网上资源 620
附录C 参考书 621
附录D JavaScript特效 623
有了本书JavaScript并不难!
以前都把JavaScript当作脚本语言,认为它很好掌握,可是自从Ajax出现后,人们才发现它的强大。尤其是制作大型网站的时候,由于没有专门的开发工具,调试和维护的难度都很大,能够精通JavaScript人员可谓少之又少。
笔者在编程的时候深刻体会到了这一点,在指导新员工的过程中,解决了大量的疑难杂症,也积淀了很多文档、代码,经过我的指导以后,员工大呼:原来JavaScript并不难!
比如有如下需求:把IE窗口移动到指定位置,并设置大小。那你可以这样做:
(1)新建一个文本文件,然后打开这个文件。
(2)根据书的目录,找到“7.4.2 定位窗口到指定位置”。把其中的代码输入到刚才打开的文本文件中。自己输入可以加深对代码的理解。
(3)保存文件,然后修改文件的扩展名为.htm。
(4)此时文件的图标将会变成网页文件,双击该文件可以看到运行效果。
(5)根据书中的注释,理解关键代码的含义,做到融会贯通。
还有其他上千个功能,都在书中进行了细致讲解,你不必依次学习,只要在需要的时候,查一下目录,根据书中讲解进行学习就可以了。如果有时间,能把本书仔细阅读一遍,并结合上机操作,那么不超过一个月,你肯定能成为JavaScript高手,甚至能编出复杂的俄罗斯方块游戏,如右图所示(参考本书最后一章)。
本书与众不同的优点
根据当前的Web开发趋势,笔者专门讲解了一些比效常用但是其他书籍很少涉及的内容,如下图所示。
和其他书籍相比,本书有何特点
1.配有学习论坛http://www.rzchina.net,读者可以在上面讨论技术问题,笔者会及时回答读者提问,并提供各种技术文章,帮助你提高开发水平。
2.实例丰富经典,内容详尽。本书在讲述具体知识点的同时,列举了近220多个针对性较强的实例,直接带领读者进入使用JavaScript脚本语言进行Web应用程序开发的实践当中,而不至于陷入对深奥知识点的理解上面。
3.讲解通俗,步骤详细。本书每个实例中关键代码均以通俗易懂的语言进行注释,并穿插功能讲解和文字说明,符合个体的认知规律,读者仅需按照步骤学习并自行略加扩展,即可深入理会JavaScript脚本语言的各个知识点。
4.层次分明,内容避虚就实。本书将全部内容划分为三个部分:入门篇、进阶篇和高级篇,分别对应于JavaScript脚本语言学习的三个层次,其中入门篇主要讲述JavaScript脚本语言的基础知识,包括语法、事件、文档对象模型及其各层次对象的使用方法等;进阶篇主要讲述与JavaScript脚本语言相关、目前又相当流行的技术,如正则表达式、XML语言、Ajax技术等;高级篇主要讲述与JavaScript脚本语言相关的综合性问题,包括错误与异常处理、与插件通信、安全性和游戏编程方面的知识。总的来说,本书层次较为分明。同时,在具体内容安排上,继承经典图书知识点丰富等特点,并注意略写已经过时或用处不大的知识点,而详写与语言相关的流行技术和知识点,遵循实用性原则。
5.包含超值光盘,赠送各种JavaScript相关的资料,是你自学的好帮手。
本书包括的内容
第一部分为JavaScript入门篇,包括第1章至第13章:
第1章首先带领读者了解JavaScript脚本语言的简史和特点,意在解决“JavaScript是什么”的问题,然后列举应用实例,一步步带领读者编写开山之作:“Hello,Wolrd!”程序,并介绍了JavaScript脚本代码的引入方法、位置以及如何选择合适编辑器和解决浏览器不支持脚本代码的情况,比较了JavaScript与其他几个容易混淆的概念之间的关系,带给读者一个较为全面的概念。
第2章切入正题,介绍JavaScript脚本语言的基础知识,包括数值类型、常量、变量、基本数据类型、组合数据类型、运算符、核心语句和函数等,基本囊括了JavaScript脚本语言的基础,为后续章节做好准备。
第3章介绍了JavaScript脚本语言在事件处理方面的相关知识,内容涉及事件的概念、文档事件、事件处理、现代事件模型、Event对象、浏览器扩展和事件传递等,并重点介绍了DOM规范中关于JavaScript事件的处理方法。
第4章是后续章节第5章至第13章的基础,重点介绍了JavaScript脚本基于对象编程方面的知识,内容包括基于对象和面向对象的区别、JavaScript对象的生成、核心对象、对象引用以及自定义对象等,为后续章节打下坚实的基础。
第5章主要介绍了文档对象模型方面的知识,内容涵盖DOM的基本概念、浏览器扩展、对象的层次和产生过程,引入了节点的概念,并重点介绍了访问文档对象的方法。
第6章至第13章根据文档对象模型中各对象的层次关系分别予以介绍,通过大量有较强针对性的实例带领读者深入了解各个对象的操作方法。
第二部分为JavaScript进阶篇,包括第14章至第17章:
第14章介绍了正则表达式方面的知识,从概念和使用方法着手,重点介绍了RegExp对象的相关知识,并分析了正则表达式的简单模式和复杂模式,最后通过几个具体实例进行深入讲解,并引入了一些最常用的正则表达式便于读者查阅和参考。
第15章引入了可扩展标记语言XML,重点讲述了其基本概念和结构,并分析了DOM规范及主流浏览器对XML的支持,同时通过具体实例引入智能XML DOM、XPath和XLST等概念。
第16章主要介绍了客户端和服务器端通信方面的知识,内容涵盖HTTP、LiveConnect和智能HTTP等请求,并分析了Windows Cookie的相关知识。
第17章引入了当前炙手可热的技术:Ajax。从“什么是Ajax”、“为什么需要Ajax”等问题以及“Ajax的具体应用实例和场合”着手,重点介绍了Ajax技术的具体使用方法,并通过注册信息实时验证、级联目录和自动适时刷新页面等三个实例的介绍,帮助读者深入理解Ajax技术的本质。
第三部分为JavaScript高级篇,包括第18章至第21章:
第18章分析了JavaScript脚本的错误和异常处理方面的知识,内容包括进行处理的必要性、错误、异常的概念及其异同点、使用特殊语句、结构及专门的代码调试工具进行代码调试的方法等。
第19章主要讲述JavaScript脚本与插件进行通信的方法,从流行的浏览器插件罗列、检测着手,通过具体实例重点介绍了JavaScript脚本与Java Applet、Flash交互的细节。
第20章介绍了JavaScript脚本的安全性问题,包括JavaScript脚本安全性的概念、历史上曾出现的解决方案等内容,并分小节重点介绍了JavaScript代码安全性、资源访问安全性和执行安全性的细节及解决思路。
第21章为本书的最后一个章节,引入一个使用JavaScript脚本编制的俄罗斯方块游戏,通过结构划分及功能分析,综合使用了前面章节讲述的诸多方面的知识。
本书超值光盘
1.本书实例源文件
本书光盘中包括书中所有实例的源文件,只需稍加修改,就可以应用在自己的网站中。如果遇到困难,可以学习书中讲解,或者到论坛(http://www.rzchina.net)上提问。
操作系统:Windows 98及其以上版本
开发环境:任何文本编辑器
运行环境:Internet Explorer 5.0及其以上版本
2.5个视频动画文件
本书光盘中包括5个视频动画,可以通过他们快速学习JavaScript。
编程起步之Hello_World程序.EXE
JavaScript事件处理.EXE
JavaScript基于对象编程.EXE
JavaScript资源访问安全性.EXE
JavaScript脚本与Flash进行通信.EXE
3.提供实用JavaScript特效文件
本书光盘中包括了269个JavaScript特效,可以应用在各种Web程序中。具体内容请参见附录D。
适合阅读本书的读者
本书知识全面、实例精彩、针对性强,力求以全面的知识及丰富的实例来指导读者深刻领会JavaScript脚本语言的实质及编程方法,适用于初级与中级JavaScript脚本程序开发人员,同时可作为高校相关专业师生和社会培训班的指导教材使用,对高级读者也具有一定的启发意义。
作者
2008年1月
无封面