JavaScript & DHTML Cookbook中文版
JavaScript & DHTML Cookbook中文版
Danny Goodman
出版时间:2009年02月
在当今的Web 2.0世界里,设计高交互性客户端页面的各种新技术层出不穷、炙手可热,而其核心就是JavaScript和DHTML。考虑到这个环境,本书针对Web开发者通常会遇到的特定脚本问题,提供了短小精悍的解决方案。每节包含一段针对性极强的代码,可以直接插入到应用程序中。
历经数年,阅读了成千上万的论坛文章后,本书作者,脚本编程的先行者Danny Goodman,编辑了一份常见的问题列表,这些问题烦扰着各种经验水平的脚本程序员。对于提到的每个问题,Goodman不仅提供了代码,还讨论了解决方案如何工作及为什么这样工作。各种技巧涵盖了从诸如在JavaScript中操作字符串和验证日期之类的简单任务,到展示诸如HTML元素的跨浏览器定位、排序表格和在客户端实现Ajax特性等复杂任务的完整的函数库。
本书包含了150多个技巧,不论是对于初学者还是对于有经验的程序员来说,本书都是最理想的选择:
* 如何使用交互性表单和样式表
* 如何展示用户友好的页面导航
* 如何通过文档对象模型编程创建动态内容
* 如何为静态内容提供视觉效果
* 如何定位HTML元素
* 如何在浏览器中使用XML数据
本书第1版中的许多技巧均已经过修订,本版还提供了一些新的客户端Ajax解决方案的技巧,以帮你为Web 2.0应用程序建立可扩展的用户界面。本书的每个技巧都与最新的W3C标准和浏览器兼容,包括Internet Explorer 7、Firefox 2、Safari和Opera 9。
如果想自己编写脚本并理解它的工作方式,那么请不要依赖于商业的Web开发框架,本书将是您的必备佳选。
Danny Goodman从20世纪70年代末就开始撰写关于个人电脑和商业电子产品的内容。多年来,他在HyperCard、AppleScript、JavaScript和Dynamic HTML方面的著作广为流传,这些书籍提供了非专业程序员也能使用的编程环境,而强大的内容也吸引了许多专家。他的《Dynamic HTML: The Definitive Reference》已经出了第3版,是O'Reilly销量最好的书籍之一。
  1. 前言 I
  2. 第1章 字符串 1
  3. 1.0 引言 1
  4. 1.1 连接字符串 4
  5. 1.2 提高字符处理的性能 6
  6. 1.3 访问子串 7
  7. 1.4 改变字符串的大小写 8
  8. 1.5 检验两个字符是否相等 9
  9. 1.6 不使用正则表达式检验字符串的包含关系 11
  10. 1.7 使用正则表达式检验字符串的包含关系 13
  11. 1.8 查找和替换子字符串 14
  12. 1.9 特殊字符和转义字符的应用 15
  13. 1.10 cookies的读写 17
  14. 1.11 Unicode值和字符的互相转换 20
  15. 1.12 URL字符串的编码和解码 21
  16. 1.13 Base64字符串的编码和解码 23
  17. 第2章 数字和日期 27
  18. 2.0 引言 27
  19. 2.1 数字和字符串的互相转换 31
  20. 2.2 检验数字的有效性 33
  21. 2.3 检验数字的相等 34
  22. 2.4 浮点小数的取整 35
  23. 2.5 为文本显示指定数字格式 36
  24. 2.6 十进制和十六进制之间的互相转换 39
  25. 2.7 生成伪随机数字 41
  26. 2.8 三角函数的计算 41
  27. 2.9 创建Date对象 42
  28. 2.10 过去或将来日期的计算 43
  29. 2.11 计算两个日期之间的天数 45
  30. 2.12 验证日期 47
  31. 第3章 数组和对象 51
  32. 3.0 引言 51
  33. 3.1 创建简单的数组 54
  34. 3.2 创建多维数组 56
  35. 3.3 数组和字符串之间的转换 57
  36. 3.4 操作数组元素 59
  37. 3.5 简单数组的排序 61
  38. 3.6 合并数组 63
  39. 3.7 分解数组 64
  40. 3.8 创建自定义对象 65
  41. 3.9 用于快速数组查询的模拟哈希表 69
  42. 3.10 对象属性的处理 71
  43. 3.11 对象数组的排序 72
  44. 3.12 自定义对象的原型 74
  45. 3.13 把数组和自定义对象转换成字符串 79
  46. 3.14 使用对象减少命名冲突 82
  47. 第4章 变量、函数和流程控制 85
  48. 4.0 引言 85
  49. 4.1 创建JavaScript变量 85
  50. 4.2 创建命名函数 89
  51. 4.3 嵌套命名函数 92
  52. 4.4 创建匿名函数 93
  53. 4.5 延迟函数的调用 94
  54. 4.6 条件分支 97
  55. 4.7 漂亮地处理脚本错误 101
  56. 4.8 提高脚本的性能 103
  57. 第5章 浏览器特性检测 107
  58. 5.0 引言 107
  59. 5.1 检测浏览器的种类 113
  60. 5.2 检测早期的浏览器版本 113
  61. 5.3 检测Internet Explorer的版本 115
  62. 5.4 检测Mozilla的版本 116
  63. 5.5 检测Safari的版本 118
  64. 5.6 检测Opera的版本 119
  65. 5.7 检测客户端的操作系统 120
  66. 5.8 检测对象支持 121
  67. 5.9 检测对象属性和方法的支持 124
  68. 5.10 检测W3C DOM标准的支持 126
  69. 5.11 检测浏览器的书写语言 127
  70. 5.12 检测Cookie的是否可用 128
  71. 5.13 为特定浏览器或属性定义链接 129
  72. 5.14 多个浏览器版本的检验 130
  73. 第6章 管理浏览器窗口 132
  74. 6.0 引言 132
  75. 6.1 在浏览器窗口控制受限的环境下生存 135
  76. 6.2 设置主窗口的尺寸 136
  77. 6.3 主窗口定位 137
  78. 6.4 最大化主窗口 138
  79. 6.5 创建新窗口 139
  80. 6.6 将窗口置前 143
  81. 6.7 与新窗口进行通信 144
  82. 6.8 与主窗口进行通信 147
  83. 6.9 使用IE的模态/非模态窗口 148
  84. 6.10 模拟跨浏览器的模态对话框 151
  85. 6.11 用层模拟窗口 158
  86. 第7章 管理多个框架 173
  87. 7.0 引言 173
  88. 7.1 在新的框架组中创建空白框架 178
  89. 7.2 从其他框架中改变框架的内容 179
  90. 7.3 同时改变多个框架的内容 181
  91. 7.4 用单一页面替换框架组 182
  92. 7.5 避免被其他网站“加框” 183
  93. 7.6 确保页面加载到自己的框架组 184
  94. 7.7 读取框架的尺寸 187
  95. 7.8 设置框架的尺寸 188
  96. 7.9 动态设置框架组的规格 192
  97. 第8章 动态表单 194
  98. 8.0 引言 194
  99. 8.1 自动在第一个文本域聚焦 197
  100. 8.2 常见的文本域检验 198
  101. 8.3 在验证失败时阻止表单提交 204
  102. 8.4 自动聚焦到无效的文本域输入 207
  103. 8.5 使用自定义验证对象 208
  104. 8.6 改变表单的动作 213
  105. 8.7 封锁回车键的提交 214
  106. 8.8 通过回车键移动文本域的焦点 215
  107. 8.9 在文本框中输入回车键来提交表单 216
  108. 8.10 禁用表单控件 217
  109. 8.11 隐藏和显示表单控件 219
  110. 8.12 仅允许在文本框中输入数字(或字母) 221
  111. 8.13 在固定长度的文本框中自动移动焦点 223
  112. 8.14 改变select元素的内容 224
  113. 8.15 页面间表单数据的复制 227
  114. 第9章 管理事件 231
  115. 9.0 引言 231
  116. 9.1 等价使用IE和W3C的事件模型 236
  117. 9.2 在页面加载之后初始化 240
  118. 9.3 添加多个load事件处理 242
  119. 9.4 判断点击事件的坐标 244
  120. 9.5 阻止事件执行默认行为 248
  121. 9.6 阻止重复点击 251
  122. 9.7 判断哪个元素收到事件 252
  123. 9.8 判断哪个鼠标按键被按下 254
  124. 9.9 读取被按下的字符键 256
  125. 9.10 读取被按下的非字符键 257
  126. 9.11 在事件中判断哪个辅助键被按下 260
  127. 9.12 判断光标移出/移入的元素 262
  128. 9.13 与事件同步播放声音 266
  129. 第10章 页面导航技术 268
  130. 10.0 引言 268
  131. 10.1 加载新页面或锚点 271
  132. 10.2 避免页面进入浏览器历史 273
  133. 10.3 将select元素用于导航 274
  134. 10.4 通过Cookie在页面之间传递数据 276
  135. 10.5 通过框架在页面之间传递数据 278
  136. 10.6 通过URL在页面之间传递数据 280
  137. 10.7 创建上下文(右键)菜单 283
  138. 10.8 创建下拉式导航菜单 291
  139. 10.9 创建导航踪迹菜单 305
  140. 10.10 创建可展开菜单 308
  141. 10.11 建立可折叠的XML菜单 320
  142. 第11章 管理样式表 331
  143. 11.0 引言 331
  144. 11.1 从全局给元素指定样式表规则 333
  145. 11.2 为一组元素指定样式表规则 334
  146. 11.3 为单独的元素指定样式表规则 336
  147. 11.4 导入外部样式表 337
  148. 11.5 针对浏览器或操作系统导入样式表 338
  149. 11.6 在加载之后更改导入的样式表 340
  150. 11.7 启用/禁用样式表 341
  151. 11.8 切换元素的样式表 342
  152. 11.9 覆盖样式表规则 343
  153. 11.10 将任意内容转变成带有样式的元素 344
  154. 11.11 创建居中的body元素 345
  155. 11.12 读取有效样式表属性值 346
  156. 11.13 强制浏览器使用标准模式 348
  157. 第12章 静态内容的视觉效果 351
  158. 12.0 引言 351
  159. 12.1 预读图像 354
  160. 12.2 在鼠标移过时切换图像 356
  161. 12.3 减少JavaScript下载的切换图像 358
  162. 12.4 使用CSS减少切换图像的下载 362
  163. 12.5 动态改变图像大小 366
  164. 12.6 改变文本样式属性 367
  165. 12.7 让用户选择正文的文字大小 370
  166. 12.8 创建自定义链接样式 374
  167. 12.9 改变页面背景色和图像 375
  168. 12.10 隐藏和显示元素 378
  169. 12.11 调整元素透明度 379
  170. 12.12 创建过渡视觉效果 381
  171. 12.13 在canvas元素中绘制图表 385
  172. 第13章 HTML元素定位 392
  173. 13.0 引言 392
  174. 13.1 让元素在文档空间中可定位 397
  175. 13.2 定位元素与body元素的联系 398
  176. 13.3 通过DHTML函数库控制定位 400
  177. 13.4 选择div和span容器 407
  178. 13.5 调整定位元素的叠放顺序(Z-order) 409
  179. 13.6 使元素在另一个元素上方居中 410
  180. 13.7 在窗口或框架中使元素居中 412
  181. 13.8 判断未定位元素的位置 414
  182. 13.9 让元素沿直线运动 415
  183. 13.10 让元素沿圆形路径移动 419
  184. 13.11 创建可拖动的元素 421
  185. 13.12 滚动div的内容 426
  186. 13.13 创建自定义滚动条 432
  187. 13.14 创建滑块控件 445
  188. 第14章 创建动态内容 452
  189. 14.0 引言 452
  190. 14.1 在页面加载时写入动态内容 453
  191. 14.2 动态创建新的页面内容 454
  192. 14.3 包含外部HTML内容 456
  193. 14.4 嵌入XML数据 458
  194. 14.5 用JavaScript对象嵌入数据 460
  195. 14.6 将XML数据转换到HTML表格中 463
  196. 14.7 将JavaScript对象转换成HTML表格 466
  197. 14.8 将XML结点树转换成JavaScript对象 469
  198. 14.9 创建新的HTML元素 470
  199. 14.10 为新元素创建文本内容 473
  200. 14.11 创建混合的元素和文本结点 474
  201. 14.12 插入并填充iframe元素 476
  202. 14.13 获取HTML元素对象的引用 478
  203. 14.14 引用所有同类的元素 480
  204. 14.15 替换部分正文内容 482
  205. 14.16 删除正文内容 483
  206. 14.17 使用XMLHttpRequest进行REST请求 485
  207. 14.18 使用XMLHttpRequest进行SOAP调用 488
  208. 14.19 排序动态表格 491
  209. 14.20 遍历文档结点树 494
  210. 14.21 捕获文档内容 498
  211. 第15章 动态内容的应用 500
  212. 15.0 引言 500
  213. 15.1 显示随机格言 501
  214. 15.2 将用户选择区域转换为任意元素 504
  215. 15.3 自动查找替换正文内容 506
  216. 15.4 设计用户可以编辑的内容页面 512
  217. 15.5 创建幻灯片 515
  218. 15.6 自动滚动页面 523
  219. 15.7 根据用户的时间进行问候 524
  220. 15.8 显示距离圣诞节的天数 525
  221. 15.9 显示倒计时 527
  222. 15.10 创建基于日历的日期选择控件 534
  223. 15.11 显示动画进度条 542
  224. 附录A 键盘事件的字符值 548
  225. 附录B 键盘的按键编码值 550
  226. 附录C ECMAScript保留关键字 552
  227. 索引 553
书名:JavaScript & DHTML Cookbook中文版
作者:Danny Goodman
国内出版社:中国电力出版社
出版时间:2009年02月
书号:978-0-596-51408-2
原版书出版商:O'Reilly Media
Danny Goodman
 
Danny Goodman从20世纪70年代末就开始撰写关于个人电脑和商业电子产品的内容。2006年是他的自由撰稿人和程序员生涯的第25年,这些年来他发表了数百篇杂志文章,几个商业软件产品,以及包括本书在内共45本计算机书籍。多年来,他在HyperCard、AppleScript、JavaScript和DynamicHTML方面的著作广为流传,这些书籍提供了非专业程序员也能使用的编程环境,而强大的内容也吸引了许多专家。他的《Dynamic HTML: The Definitive Reference》已经出了第3版,是O'Reilly销量最好的书籍之一。
 
 
本书封面动物是吼猴。吼猴由于它们能发出震耳欲聋的声音而得名,这种声音能传出两英里(1英里约为1.6千米)远。人们认为,它们是声音最大的陆栖动物。它们有两个凹陷的舌骨,使它们发出赖以成名的巨大声音。
雄性吼猴是黑色的,雌性吼猴为棕色到褐色之间的某种颜色。它们的脖子很粗,有宽大的下颚(中有巨大的舌骨),短腿和长长的善于盘卷起来的尾巴。幼年吼猴刚出生时毛色为棕色,但雄性的皮毛最终会变成黑色。这些猴子能长到2英尺(1英尺约为0.3米)高,体重可达16磅(1磅约为0.454千克)。雄性通常要比雌性大很多。
吼猴以一到三只雄性和两到七只雌性为一组在一起行动和生活。每组中有一个占据统治地位的雄性吼猴。它们绝大部分时间都在树上度过。它们的吼叫声用于标识自己的地盘,也用来与其他组的猴子通信。日常饮食主要是树叶,也吃水果和虫子。当它们生存的森林面积减少时,就会受到其他物种的威胁。