JavaScript高级程序设计第三版中文版pdf
JavaScript , Web 中 。JavaScript, Java , 不 Java 版本, Java 有 。JavaScript , 民 Web 中, Web
JavaScript最新经典教程 * Amazon超级畅销书 * AJAX程序员必备, , 随着国内的计算机图书市场越来越细化,各类引进版和原创图书在各自领域内如雨后春笋般展露头角,各类“经典”和“圣经”横空出世。但是有一个领域内却一直遗留了大片空白,就是JavaScript类图书。除了O'Reilly的《JAVASCRIPT权威指南》之外,国内一直没有出现过特别优秀的同类图书。就在这时,Wrox的《Professional JavaScript for Web Developers》走进了我们的视野,中文名是《JAVASCRIPT高级程序设计》, , JavaScript是目前Web客户端开发的主要编程语言,也是Ajax的核心技术之一。本书从最早期Netscape浏览器中的Jav aScript 开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的 JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和 Web服务,最后介绍应用所有这些知识来创建动态用户界面。, 本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。, , 新增DOM概念,如何实现正则表达式进行数据验证和字符串操作,把JavaScript联系到Web用户界面的事件处理方法; 数据验证、表排序和错误处理的方法等, , 目录, , 第1章 JavaScript是什么 1, 1.1 历史简述 1, 1.2 JavaScript实现 2, 1.2.1 ECMAScript 3, 1.2.2 DOM 5, 1.2.3 BOM 8, 1.3 小结 8, 第2章 ECMAScript基础 9, 2.1 语法 9, 2.2 变量 10, 2.3 关键字 12, 2.4 保留字 12, 2.5 原始值和引用值 13, 2.6 原始类型 13, 2.6.1 typeof运算符 14, 2.6.2 Undefined类型 14, 2.6.3 Null类型 15, 2.6.4 Boolean类型 15, 2.6.5 Number类型 15, 2.6.6 String类型 17, 2.7 转换 18, 2.7.1 转换成字符串 18, 2.7.2 转换成数字 19, 2.7.3 强制类型转换 20, 2.8 引用类型 22, 2.8.1 Object类 22, 2.8.2 Boolean类 23, 2.8.3 Number类 23, 2.8.4 String类 24, 2.8.5 instanceof运算符 28, 2.9 运算符 28, 2.9.1 一元运算符 28, 2.9.2 位运算符 32, 2.9.3 Boolean运算符 37, 2.9.4 乘性运算符 40, 2.9.5 加性运算符 41, 2.9.6 关系运算符 42, 2.9.7 等性运算符 43, 2.9.8 条件运算符 45, 2.9.9 赋值运算符 45, 2.9.10 逗号运算符 46, 2.10 语句 46, 2.10.1 if语句 46, 2.10.2 迭代语句 47, 2.10.3 有标签的语句 48, 2.10.4 break语句和continue语句 48, 2.10.5 with语句 50, 2.10.6 switch语句 50, 2.11 函数 51, 2.11.1 无重载 53, 2.11.2 arguments对象 53, 2.11.3 Function类 54, 2.11.4 闭包 56, 2.12 小结 57, 第3章 对象基础 58, 3.1 面向对象术语 58, 3.1.1 面向对象语言的要求 58, 3.1.2 对象的构成 59, 3.2 对象应用 59, 3.2.1 声明和实例化 59, 3.2.2 对象引用 59, 3.2.3 对象废除 59, 3.2.4 早绑定和晚绑定 60, 3.3 对象的类型 60, 3.3.1 本地对象 60, 3.3.2 内置对象 70, 3.3.3 宿主对象 75, 3.4 作用域 75, 3.4.1 公用、受保护和私有作用域 75, 3.4.2 静态作用域并非静态的 76, 3.4.3 关键字this 76, 3.5 定义类或对象 78, 3.5.1 工厂方式 78, 3.5.2 构造函数方式 80, 3.5.3 原型方式 80, 3.5.4 混合的构造函数/原型方式 81, 3.5.5 动态原型方法 82, 3.5.6 混合工厂方式 83, 3.5.7 采用哪种方式 84, 3.5.8 实例 84, 3.6 修改对象 86, 3.6.1 创建新方法 86, 3.6.2 重定义已有方法 87, 3.6.3 极晚绑定 88, 3.7 小结 88, 第4章 继承 89, 4.1 继承机制实例 89, 4.2 继承机制的实现 90, 4.2.1 继承的方式 90, 4.2.2 一个更实际的例子 96, 4.3 其他继承方式 100, 4.3.1 zInherit 100, 4.3.2 xbObjects 104, 4.4 小结 108, 第5章 浏览器中的JavaScript 109, 5.1 HTML中的JavaScript 109, 5.1.1 〈script/〉标签 109, 5.1.2 外部文件格式 110, 5.1.3 内嵌代码和外部文件 111, 5.1.4 标签放置 111, 5.1.5 隐藏还是不隐藏 113, 5.1.6 〈noscript/〉标签 113, 5.1.7 XHTML中的改变 114, 5.2 SVG中的JavaScript 116, 5.2.1 SVG基础 116, 5.2.2 SVG中的〈script/〉标签 117, 5.2.3 SVG中的标签放置 118, 5.3 BOM 119, 5.3.1 window对象 119, 5.3.2 document对象 130, 5.3.3 location对象 133, 5.3.4 navigator对象 135, 5.3.5 screen对象 136, 5.4 小结 137, 第6章 DOM基础 138, 6.1 什么是DOM? 138, 6.1.1 XML简介 138, 6.1.2 针对XML的API 141, 6.1.3 节点的层次 141, 6.1.4 特定语言的DOM 144, 6.2 对DOM的支持 145, 6.3 使用DOM 145, 6.3.1 访问相关的节点 145, 6.3.2 检测节点类型 146, 6.3.3 处理特性 147, 6.3.4 访问指定节点 148, 6.3.5 创建和操作节点 150, 6.4 HTML DOM特征功能 155, 6.4.1 让特性像属性一样 155, 6.4.2 table方法 156, 6.5 遍历DOM 158, 6.5.1 NodeIterator 158, 6.5.2 TreeWalker 163, 6.6 测试与DOM标准的一致性 165, 6.7 DOM Level 3 166, 6.8 小结 166, 第7章 正则表达式 167, 7.1 正则表达式支持 167, 7.1.1 使用RegExp对象 168, 7.1.2 扩展的字符串方法 169, 7.2 简单模式 170, 7.2.1 元字符 170, 7.2.2 使用特殊字符 170, 7.2.3 字符类 172, 7.2.4 量词 174, 7.3 复杂模式 177, 7.3.1 分组 177, 7.3.2 反向引用 178, 7.3.3 候选 179, 7.3.4 非捕获性分组 180, 7.3.5 前瞻 181, 7.3.6 边界 182, 7.3.7 多行模式 183, 7.4 理解RegExp对象 184, 7.4.1 实例属性 184, 7.4.2 静态属性 185, 7.5 常用模式 186, 7.5.1 验证日期 187, 7.5.2 验证信用卡号 188, 7.5.3 验证电子邮件地址 192, 7.6 小结 193, 第8章 检测浏览器和操作系统 194, 8.1 navigator对象 194, 8.2 检测浏览器的方式 194, 8.2.1 对象/特征检测法 194, 8.2.2 user-agent字符串检测法 195, 8.3 user-agent字符串简史 196, 8.3.1 Netscape Navigator 3.0与 IE3.0 196, 8.3.2 Netscape Communicator 4.0与IE 4.0 197, 8.3.3 IE 5.0及更高版本 198, 8.3.4 Mozilla 198, 8.3.5 Opera 200, 8.3.6 Safari 201, 8.3.7 结语 201, 8.4 浏览器检测脚本 201, 8.4.1 方法学 202, 8.4.2 第一步 202, 8.4.3 检测Opera 204, 8.4.4 检测Konqueror/Safari 206, 8.4.5 检测IE 208, 8.4.6 检测Mozilla 209, 8.4.7 检测Netscape Communicator 4.x 210, 8.5 平台/操作系统检测脚本 211, 8.5.1 方法学 211, 8.5.2 第一步 212, 8.5.3 检测Windows操作系统 212, 8.5.4 检测Macintosh操作系统 214, 8.5.5 检测Unix操作系统 214, 8.6 全部脚本 215, 8.7 例子:登录页面 219, 8.8 小结 224, 第9章 事件 225, 9.1 今天的事件 225, 9.2 事件流 226, 9.2.1 冒泡型事件 226, 9.2.2 捕获型事件 227, 9.2.3 DOM事件流 228, 9.3 事件处理函数/监听函数 229, 9.3.1 IE 230, 9.3.2 DOM 231, 9.4 事件对象 232, 9.4.1 定位 233, 9.4.2 属性/方法 233, 9.4.3 相似性 235, 9.4.4 区别 238, 9.5 事件的类型 240, 9.5.1 鼠标事件 240, 9.5.2 键盘事件 244, 9.5.3 HTML事件 246, 9.5.4 变化事件 251, 9.6 跨平台的事件 252, 9.6.1 EventUtil对象 252, 9.6.2 添加/删除事件处理函数 252, 9.6.3 格式化event对象 254, 9.6.4 获取事件对象 258, 9.6.5 示例 259, 9.7 小结 260, 第10章 高级DOM技术 261, 10.1 样式编程 261, 10.1.1 DOM样式的方法 263, 10.1.2 自定义鼠标提示 264, 10.1.3 可折叠区域 265, 10.1.4 访问样式表 266, 10.1.5 最终样式 270, 10.2 innerText和innerHTML 271, 10.3 outerText和outerHTML 273, 10.4 范围 274, 10.4.1 DOM中的范围 274, 10.4.2 IE中的范围 284, 10.4.3 范围在实际中的应用 288, 10.5 小结 288, 第11章 表单和数据完整性 289, 11.1 表单基础 289, 11.2 对〈form/〉元素进行脚本编写 291, 11.2.1 获取表单的引用 291, 11.2.2 访问表单字段 291, 11.2.3 表单字段的共性 292, 11.2.4 聚焦于第一个字段 292, 11.2.5 提交表单 293, 11.2.6 仅提交一次 294, 11.2.7 重置表单 295, 11.3 文本框 295, 11.3.1 获取/更改文本框的值 296, 11.3.2 选择文本 297, 11.3.3 文本框事件 298, 11.3.4 自动选择文本 298, 11.3.5 自动切换到下一个 299, 11.3.6 限制textarea的字符数 300, 11.3.7 允许/阻止文本框中的字符 301, 11.3.8 使用上下按键操作数字文本 306, 11.4 列表框和组合框 308, 11.4.1 访问选项 309, 11.4.2 获取/更改选中项 309, 11.4.3 添加选项 310, 11.4.4 删除选项 311, 11.4.5 移动选项 312, 11.4.6 重新排序选项 313, 11.5 创建自动提示的文本框 313, 11.5.1 匹配 314, 11.5.2 内部机制 314, 11.6 小结 316, 第12章 表格排序 317, 12.1 起点——数组 317, 12.2 对单列的表格排序 319, 12.2.1 比较函数 320, 12.2.2 sortTable()函数 320, 12.3 对多列表格进行排序 323, 12.3.1 比较函数生成器 323, 12.3.2 修改sortTable()方法 324, 12.3.3 逆序排列 325, 12.3.4 对不同的数据类型进行排序 327, 12.3.5 高级排序 330, 12.4 小结 334, 第13章 拖放 335, 13.1 系统拖放 335, 13.1.1 拖放事件 336, 13.1.2 数据传输对象dataTransfer 341, 13.1.3 dragDrop()方法 345, 13.1.4 优点及缺点 346, 13.2 模拟拖放 346, 13.2.1 代码 347, 13.2.2 创建放置目标 349, 13.2.3 优点及缺点 352, 13.3 zDragDrop 352, 13.3.1 创建可拖动元素 352, 13.3.2 创建放置目标 353, 13.3.3 事件 353, 13.3.4 例子 354, 13.4 小结 355, 第14章 错误处理 356, 14.1 错误处理的重要性 356, 14.2 错误和异常 357, 14.3 错误报告 358, 14.3.1 IE(Windows) 358, 14.3.2 IE(MacOS) 359, 14.3.3 Mozilla(所有平台) 359, 14.3.4 Safari(MacOS) 360, 14.3.5 Opera 7(所有平台) 361, 14.4 处理错误 362, 14.4.1 onerror事件处理函数 362, 14.4.2 try...catch语句 365, 14.5 调试技巧 370, 14.5.1 使用警告框 370, 14.5.2 使用Java控制台 371, 14.5.3 将消息写入JavaScript控制台 (仅限Opera 7+) 372, 14.5.4 抛出自定义错误 372, 14.5.5 JavaScript校验器 373, 14.6 调试器 374, 14.6.1 Microsoft Script Debugger 374, 14.6.2 Venkman 376, 14.7 小结 383, 第15章 JavaScript中的XML 384, 15.1 浏览器中的XML DOM支持 384, 15.1.1 IE中的XML DOM支持 384, 15.1.2 Mozilla中XML DOM支持 388, 15.1.3 通用接口 393, 15.2 浏览器中的XPath支持 403, 15.2.1 XPath简介 403, 15.2.2 IE中的XPath支持 404, 15.2.3 Mozilla中的XPath支持 404, 15.3 浏览器中的XSLT支持 408, 15.3.1 IE中的XSLT支持 410, 15.3.2 Mozilla中XSLT支持 413, 15.4 小结 415, 第16章 客户端与服务器端的通信 416, 16.1 cookie 416, 16.1.1 cookie的成分 416, 16.1.2 其他安全限制 417, 16.1.3 JavaScript中的cookie 417, 16.1.4 服务器端的cookie 419, 16.1.5 在客户端与服务器端之间传递cookie 422, 16.2 隐藏框架 423, 16.3 HTTP请求 426, 16.3.1 使用HTTP首部 428, 16.3.2 实现的复制品 429, 16.3.3 进行GET请求 430, 16.3.4 进行POST请求 430, 16.4 LiveConnect请求 431, 16.4.1 进行GET请求 431, 16.4.2 进行POST请求 433, 16.5 智能HTTP请求 435, 16.5.1 get()方法 435, 16.5.2 post()方法 438, 16.6 实际使用 439, 16.7 小结 439, 第17章 Web服务 440, 17.1 Web服务快速入门 440, 17.1.1 Web服务是什么? 440, 17.1.2 WSDL 441, 17.2 IE中的Web服务 443, 17.2.1 使用WebService组件 444, 17.2.2 WebService组件例子 445, 17.3 Mozilla中的Web服务 447, 17.3.1 加强的特权 447, 17.3.2 使用SOAP方法 448, 17.3.3 使用WSDL代理 451, 17.4 跨浏览器的方案 454, 17.4.1 WebService对象 454, 17.4.2 Temperature 服务 456, 17.4.3 使用TemperatureService对象 458, 17.5 小结 458, 第18章 与插件进行交互 459, 18.1 为何使用插件 459, 18.2 流行的插件 460, 18.3 MIME类型 460, 18.4 嵌入插件 461, 18.4.1 加入参数 461, 18.4.2 Netscape 4.x 462, 18.5 检测插件 462, 18.5.1 检测Netscape式插件 463, 18.5.2 检测ActiveX插件 467, 18.5.3 跨浏览器检测 469, 18.6 Java applet 470, 18.6.1 嵌入applet 470, 18.6.2 在JavaScript中引用applet 471, 18.6.3 创建applet 471, 18.6.4 JavaScript到Java的通信 472, 18.6.5 Java到JavaScript的通信 475, 18.7 Flash动画 477, 18.7.1 嵌入Flash动画 477, 18.7.2 引用Flash动画 478, 18.7.3 JavaScript到Flash的通信 478, 18.7.4 Flash到JavaScript通信 481, 18.8 ActiveX控件 483, 18.9 小结 485, 第19章 部署问题 486, 19.1 安全性 486, 19.1.1 同源策略 486, 19.1.2 窗口对象问题 487, 19.1.3 Mozilla特有的问题 488, 19.1.4 资源限制 490, 19.2 国际化 491, 19.2.1 使用JavaScript检测语言 491, 19.2.2 策略 492, 19.2.3 字符串的思考 492, 19.3 优化JavaScript 495, 19.3.1 下载时间 495, 19.3.2 执行时间 499, 19.4 知识产权的问题 512, 19.4.1 混淆 512, 19.4.2 Microsoft Script Encoder(仅IE) 513, 19.5 小结 514, 第20章 JavaScript的未来 515, 20.1 ECMAScript 4 515, 20.1.1 Netscape的提案 515, 20.1.2 实现 521, 20.2 ECMAScript for XML 522, 20.2.1 途径 522, 20.2.2 for each..in循环 524, 20.2.3 新的类 524, 20.2.4 实现 532, 20.3 小结 532, 索引 aScript 开始讲起,直到当前它对XML和Web服务的具体支持,内容主要涉及JavaScript的语言特点、JavaScript与浏览器的交互、更高级的 JavaScript技巧,以及与在Web应用程序中部署JavaScript解决方案有关的问题,如错误处理、调试、安全性、优化/混淆化、XML和 Web服务,最后介绍应用所有这些知识来创建动态用户界面。, 本书适合有一定编程经验的开发人员阅读,也可作为高校相关专业课程的教材。, , 新增DOM概念,如何实现正则表达式进行数据验证和字符串操作,把JavaScript联系到Web用户界面的事件处理方法; 数据验证、表排序和错误处理的方法等, , 目录, , 第1章 JavaScript是什么 1, 1.1 历史简述 1, 1.2 JavaScript实现 2, 1.2.1 ECMAScript 3, 1.2.2 DOM 5, 1.2.3 BOM 8, 1.3 小结 8, 第2章 ECMAScript基础 9, 2.1 语法 9, 2.2 变量 10, 2.3 关键字 12, 2.4 保留字 12, 2.5 原始值和引用值 13, 2.6 原始类型 13, 2.6.1 typeof运算符 14, 2.6.2 Undefined类型 14, 2.6.3 Null类型 15, 2.6.4 Boolean类型 15, 2.6.5 Number类型 15, 2.6.6 String类型 17, 2.7 转换 18, 2.7.1 转换成字符串 18, 2.7.2 转换成数字 19, 2.7.3 强制类型转换 20, 2.8 引用类型 22, 2.8.1 Object类 22, 2.8.2 Boolean类 23, 2.8.3 Number类 23, 2.8.4 String类 24, 2.8.5 instanceof运算符 28, 2.9 运算符 28, 2.9.1 一元运算符 28, 2.9.2 位运算符 32, 2.9.3 Boolean运算符 37, 2.9.4 乘性运算符 40, 2.9.5 加性运算符 41, 2.9.6 关系运算符 42, 2.9.7 等性运算符 43, 2.9.8 条件运算符 45, 2.9.9 赋值运算符 45, 2.9.10 逗号运算符 46, 2.10 语句 46, 2.10.1 if语句 46, 2.10.2 迭代语句 47, 2.10.3 有标签的语句 48, 2.10.4 break语句和continue语句 48, 2.10.5 with语句 50, 2.10.6 switch语句 50, 2.11 函数 51, 2.11.1 无重载 53, 2.11.2 arguments对象 53, 2.11.3 Function类 54, 2.11.4 闭包 56, 2.12 小结 57, 第3章 对象基础 58, 3.1 面向对象术语 58, 3.1.1 面向对象语言的要求 58, 3.1.2 对象的构成 59, 3.2 对象应用 59, 3.2.1 声明和实例化 59, 3.2.2 对象引用 59, 3.2.3 对象废除 59, 3.2.4 早绑定和晚绑定 60, 3.3 对象的类型 60, 3.3.1 本地对象 60, 3.3.2 内置对象 70, 3.3.3 宿主对象 75, 3.4 作用域 75, 3.4.1 公用、受保护和私有作用域 75, 3.4.2 静态作用域并非静态的 76, 3.4.3 关键字this 76, 3.5 定义类或对象 78, 3.5.1 工厂方式 78, 3.5.2 构造函数方式 80, 3.5.3 原型方式 80, 3.5.4 混合的构造函数/原型方式 81, 3.5.5 动态原型方法 82, 3.5.6 混合工厂方式 83, 3.5.7 采用哪种方式 84, 3.5.8 实例 84, 3.6 修改对象 86, 3.6.1 创建新方法 86, 3.6.2 重定义已有方法 87, 3.6.3 极晚绑定 88, 3.7 小结 88, 第4章 继承 89, 4.1 继承机制实例 89, 4.2 继承机制的实现 90, 4.2.1 继承的方式 90, 4.2.2 一个更实际的例子 96, 4.3 其他继承方式 100, 4.3.1 zInherit 100, 4.3.2 xbObjects 104, 4.4 小结 108, 第5章 浏览器中的JavaScript 109, 5.1 HTML中的JavaScript 109, 5.1.1 〈script/〉标签 109, 5.1.2 外部文件格式 110, 5.1.3 内嵌代码和外部文件 111, 5.1.4 标签放置 111, 5.1.5 隐藏还是不隐藏 113, 5.1.6 〈noscript/〉标签 113, 5.1.7 XHTML中的改变 114, 5.2 SVG中的JavaScript 116, 5.2.1 SVG基础 116, 5.2.2 SVG中的〈script/〉标签 117, 5.2.3 SVG中的标签放置 118, 5.3 BOM 119, 5.3.1 window对象 119, 5.3.2 document对象 130, 5.3.3 location对象 133, 5.3.4 navigator对象 135, 5.3.5 screen对象 136, 5.4 小结 137, 第6章 DOM基础 138, 6.1 什么是DOM? 138, 6.1.1 XML简介 138, 6.1.2 针对XML的API 141, 6.1.3 节点的层次 141, 6.1.4 特定语言的DOM 144, 6.2 对DOM的支持 145, 6.3 使用DOM 145, 6.3.1 访问相关的节点 145, 6.3.2 检测节点类型 146, 6.3.3 处理特性 147, 6.3.4 访问指定节点 148, 6.3.5 创建和操作节点 150, 6.4 HTML DOM特征功能 155, 6.4.1 让特性像属性一样 155, 6.4.2 table方法 156, 6.5 遍历DOM 158, 6.5.1 NodeIterator 158, 6.5.2 TreeWalker 163, 6.6 测试与DOM标准的一致性 165, 6.7 DOM Level 3 166, 6.8 小结 166, 第7章 正则表达式 167, 7.1 正则表达式支持 167, 7.1.1 使用RegExp对象 168, 7.1.2 扩展的字符串方法 169, 7.2 简单模式 170, 7.2.1 元字符 170, 7.2.2 使用特殊字符 170, 7.2.3 字符类 172, 7.2.4 量词 174, 7.3 复杂模式 177, 7.3.1 分组 177, 7.3.2 反向引用 178, 7.3.3 候选 179, 7.3.4 非捕获性分组 180, 7.3.5 前瞻 181, 7.3.6 边界 182, 7.3.7 多行模式 183, 7.4 理解RegExp对象 184, 7.4.1 实例属性 184, 7.4.2 静态属性 185, 7.5 常用模式 186, 7.5.1 验证日期 187, 7.5.2 验证信用卡号 188, 7.5.3 验证电子邮件地址 192, 7.6 小结 193, 第8章 检测浏览器和操作系统 194, 8.1 navigator对象 194, 8.2 检测浏览器的方式 194, 8.2.1 对象/特征检测法 194, 8.2.2 user-agent字符串检测法 195, 8.3 user-agent字符串简史 196, 8.3.1 Netscape Navigator 3.0与 IE3.0 196, 8.3.2 Netscape Communicator 4.0与IE 4.0 197, 8.3.3 IE 5.0及更高版本 198, 8.3.4 Mozilla 198, 8.3.5 Opera 200, 8.3.6 Safari 201, 8.3.7 结语 201, 8.4 浏览器检测脚本 201, 8.4.1 方法学 202, 8.4.2 第一步 202, 8.4.3 检测Opera 204, 8.4.4 检测Konqueror/Safari 206, 8.4.5 检测IE 208, 8.4.6 检测Mozilla 209, 8.4.7 检测Netscape Communicator 4.x 210, 8.5 平台/操作系统检测脚本 211, 8.5.1 方法学 211, 8.5.2 第一步 212, 8.5.3 检测Windows操作系统 212, 8.5.4 检测Macintosh操作系统 214, 8.5.5 检测Unix操作系统 214, 8.6 全部脚本 215, 8.7 例子:登录页面 219, 8.8 小结 224, 第9章 事件 225, 9.1 今天的事件 225, 9.2 事件流 226, 9.2.1 冒泡型事件 226, 9.2.2 捕获型事件 227, 9.2.3 DOM事件流 228, 9.3 事件处理函数/监听函数 229, 9.3.1 IE 230, 9.3.2 DOM 231, 9.4 事件对象 232, 9.4.1 定位 233, 9.4.2 属性/方法 233, 9.4.3 相似性 235, 9.4.4 区别 238, 9.5 事件的类型 240, 9.5.1 鼠标事件 240, 9.5.2 键盘事件 244, 9.5.3 HTML事件 246, 9.5.4 变化事件 251, 9.6 跨平台的事件 252, 9.6.1 EventUtil对象 252, 9.6.2 添加/删除事件处理函数 252, 9.6.3 格式化event对象 254, 9.6.4 获取事件对象 258, 9.6.5 示例 259, 9.7 小结 260, 第10章 高级DOM技术 261, 10.1 样式编程 261, 10.1.1 DOM样式的方法 263, 10.1.2 自定义鼠标提示 264, 10.1.3 可折叠区域 265, 10.1.4 访问样式表 266, 10.1.5 最终样式 270, 10.2 innerText和innerHTML 271, 10.3 outerText和outerHTML 273, 10.4 范围 274, 10.4.1 DOM中的范围 274, 10.4.2 IE中的范围 284, 10.4.3 范围在实际中的应用 288, 10.5 小结 288, 第11章 表单和数据完整性 289, 11.1 表单基础 289, 11.2 对〈form/〉元素进行脚本编写 291, 11.2.1 获取表单的引用 291, 11.2.2 访问表单字段 291, 11.2.3 表单字段的共性 292, 11.2.4 聚焦于第一个字段 292, 11.2.5 提交表单 293, 11.2.6 仅提交一次 294, 11.2.7 重置表单 295, 11.3 文本框 295, 11.3.1 获取/更改文本框的值 296, 11.3.2 选择文本 297, 11.3.3 文本框事件 298, 11.3.4 自动选择文本 298, 11.3.5 自动切换到下一个 299, 11.3.6 限制textarea的字符数 300, 11.3.7 允许/阻止文本框中的字符 301, 11.3.8 使用上下按键操作数字文本 306, 11.4 列表框和组合框 308, 11.4.1 访问选项 309, 11.4.2 获取/更改选中项 309, 11.4.3 添加选项 310, 11.4.4 删除选项 311, 11.4.5 移动选项 312, 11.4.6 重新排序选项 313, 11.5 创建自动提示的文本框 313, 11.5.1 匹配 314, 11.5.2 内部机制 314, 11.6 小结 316, 第12章 表格排序 317, 12.1 起点——数组 317, 12.2 对单列的表格排序 319, 12.2.1 比较函数 320, 12.2.2 sortTable()函数 320, 12.3 对多列表格进行排序 323, 12.3.1 比较函数生成器 323, 12.3.2 修改sortTable()方法 324, 12.3.3 逆序排列 325, 12.3.4 对不同的数据类型进行排序 327, 12.3.5 高级排序 330, 12.4 小结 334, 第13章 拖放 335, 13.1 系统拖放 335, 13.1.1 拖放事件 336, 13.1.2 数据传输对象dataTransfer 341, 13.1.3 dragDrop()方法 345, 13.1.4 优点及缺点 346, 13.2 模拟拖放 346, 13.2.1 代码 347, 13.2.2 创建放置目标 349, 13.2.3 优点及缺点 352, 13.3 zDragDrop 352, 13.3.1 创建可拖动元素 352, 13.3.2 创建放置目标 353, 13.3.3 事件 353, 13.3.4 例子 354, 13.4 小结 355, 第14章 错误处理 356, 14.1 错误处理的重要性 356, 14.2 错误和异常 357, 14.3 错误报告 358, 14.3.1 IE(Windows) 358, 14.3.2 IE(MacOS) 359, 14.3.3 Mozilla(所有平台) 359, 14.3.4 Safari(MacOS) 360, 14.3.5 Opera 7(所有平台) 361, 14.4 处理错误 362, 14.4.1 onerror事件处理函数 362, 14.4.2 try...catch语句 365, 14.5 调试技巧 370, 14.5.1 使用警告框 370, 14.5.2 使用Java控制台 371, 14.5.3 将消息写入JavaScript控制台 (仅限Opera 7+) 372, 14.5.4 抛出自定义错误 372, 14.5.5 JavaScript校验器 373, 14.6 调试器 374, 14.6.1 Microsoft Script Debugger 374, 14.6.2 Venkman 376, 14.7 小结 383, 第15章 JavaScript中的XML 384, 15.1 浏览器中的XML DOM支持 384, 15.1.1 IE中的XML DOM支持 384, 15.1.2 Mozilla中XML DOM支持 388, 15.1.3 通用接口 393, 15.2 浏览器中的XPath支持 403, 15.2.1 XPath简介 403, 15.2.2 IE中的XPath支持 404, 15.2.3 Mozilla中的XPath支持 404, 15.3 浏览器中的XSLT支持 408, 15.3.1 IE中的XSLT支持 410, 15.3.2 Mozilla中XSLT支持 413, 15.4 小结 415, 第16章 客户端与服务器端的通信 416, 16.1 cookie 416, 16.1.1 cookie的成分 416, 16.1.2 其他安全限制 417, 16.1.3 JavaScript中的cookie 417, 16.1.4 服务器端的cookie 419, 16.1.5 在客户端与服务器端之间传递cookie 422, 16.2 隐藏框架 423, 16.3 HTTP请求 426, 16.3.1 使用HTTP首部 428, 16.3.2 实现的复制品 429, 16.3.3 进行GET请求 430, 16.3.4 进行POST请求 430, 16.4 LiveConnect请求 431, 16.4.1 进行GET请求 431, 16.4.2 进行POST请求 433, 16.5 智能HTTP请求 435, 16.5.1 get()方法 435, 16.5.2 post()方法 438, 16.6 实际使用 439, 16.7 小结 439, 第17章 Web服务 440, 17.1 Web服务快速入门 440, 17.1.1 Web服务是什么? 440, 17.1.2 WSDL 441, 17.2 IE中的Web服务 443, 17.2.1 使用WebService组件 444, 17.2.2 WebService组件例子 445, 17.3 Mozilla中的Web服务 447, 17.3.1 加强的特权 447, 17.3.2 使用SOAP方法 448, 17.3.3 使用WSDL代理 451, 17.4 跨浏览器的方案 454, 17.4.1 WebService对象 454, 17.4.2 Temperature 服务 456, 17.4.3 使用TemperatureService对象 458, 17.5 小结 458, 第18章 与插件进行交互 459, 18.1 为何使用插件 459, 18.2 流行的插件 460, 18.3 MIME类型 460, 18.4 嵌入插件 461, 18.4.1 加入参数 461, 18.4.2 Netscape 4.x 462, 18.5 检测插件 462, 18.5.1 检测Netscape式插件 463, 18.5.2 检测ActiveX插件 467, 18.5.3 跨浏览器检测 469, 18.6 Java applet 470, 18.6.1 嵌入applet 470, 18.6.2 在JavaScript中引用applet 471, 18.6.3 创建applet 471, 18.6.4 JavaScript到Java的通信 472, 18.6.5 Java到JavaScript的通信 475, 18.7 Flash动画 477, 18.7.1 嵌入Flash动画 477, 18.7.2 引用Flash动画 478, 18.7.3 JavaScript到Flash的通信 478, 18.7.4 Flash到JavaScript通信 481, 18.8 ActiveX控件 483, 18.9 小结 485, 第19章 部署问题 486, 19.1 安全性 486, 19.1.1 同源策略 486, 19.1.2 窗口对象问题 487, 19.1.3 Mozilla特有的问题 488, 19.1.4 资源限制 490, 19.2 国际化 491, 19.2.1 使用JavaScript检测语言 491, 19.2.2 策略 492, 19.2.3 字符串的思考 492, 19.3 优化JavaScript 495, 19.3.1 下载时间 495, 19.3.2 执行时间 499, 19.4 知识产权的问题 512, 19.4.1 混淆 512, 19.4.2 Microsoft Script Encoder(仅IE) 513, 19.5 小结 514, 第20章 JavaScript的未来 515, 20.1 ECMAScript 4 515, 20.1.1 Netscape的提案 515, 20.1.2 实现 521, 20.2 ECMAScript for XML 522, 20.2.1 途径 522, 20.2.2 for each..in循环 524, 20.2.3 新的类 524, 20.2.4 实现 532, 20.3 小结 532, 索引