自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (14)
  • 收藏
  • 关注

翻译 Web浏览器中的JavaScript

第二部分包括第13章到第23章的内容,描述了Web浏览器中实现的JavaScript。在这些章节中引入了大量可脚本化的对象,这些对象用于表示Web浏览器和HTML及XML文档的内容。         第13章,Web浏览器中的JavaScript         第14章,脚本化浏览器窗口         第15章,脚本化文档         第16章,层叠样式表和动态HTML

2011-11-29 19:28:35 4616 1

单元测试js框架

前端测试框架phantomjs,用来结合nodejs+grunt配置使用

2014-09-27

iframe跨域解决方案

在web开发中,跨域问题是经常遇到的,但是由于浏览器同源策略的限制,不同域之间属性和操作是无法直接交互的。本次讨论iframe和父页面的消息通信。

2014-01-19

vi常用命令

常用的vim命令整理,VI的使用 文本编辑 保存退出

2012-02-17

JS匿名函数、闭包

匿名函数,也称为拉姆达函数,是一种使用JavaScript函数的强大方式。以下总结了匿名函数的特点: 任何函数表达式从技术上说都是匿名函数,因为没有引用它们的确定的方式; 在无法确定如何引用函数的情况下,递归函数就会变得比较复杂; 递归函数应该始终使用arguments.callee来递归地调用自身,不要使用函数名--函数名可能会发生变化。 当在函数内部定义了其他函数时,就创建了闭包。闭包有权访问包含函数内部的所有变量,原理如下: 在后台执行环境中,闭包的作用域链包含着它自己的作用域、包含函数的作用域和全局作用域; 通常,函数的作用域及其所有变量都会在函数执行结束后被销毁; 但是,当函数返回了一个闭包时,这个函数的作用域将会一直在内存中保存到闭包不存在为止;使用闭包可以在JavaScript中模仿块级作用域(JavaScript本身没有块级作用域的概念),要点如下: 创建并立即调用一个函数,这样既可以执行其中的代码,又不会在内存中留下对该函数的引用; 结果就是函数内部的所有变量都会被立即销毁--除非将某些变量赋值给了包含作用域(即外部作用域)中的变量。 闭包还可以用于在对象中创建私有变量,相关概念和要点如下: 即使JavaScript中没有正式的私有对象属性的概念,但可以使用闭包来实现公有方法,而通过公有方法可以访问在包含作用域中定义的变量; 有权访问私有变量的公有方法叫做特权方法; 可以使用构造函数模式、原型模式来实现自定义类型的特权方法,也可以使用模块模式、增强的模块模式来实现单例的特权方法。 JavaScript中的匿名函数和闭包都是非常有用的特性,利用它们可以实现很多功能。不过,因为创建闭包必须维护额外的作用域,所以过度使用它们可能会占用大量内存。

2012-02-16

javascript脚本化文档

客户端JavaScript的存在把静态HTML转变为交互式的Web应用程序。脚本化Web页面的内容正是JavaScript存在的理由。本章将介绍如何做到这些,这是第二部分中最重要的一章。 每个Web浏览器窗口(或帧)显示一个HTML文档。表示这个窗口的Window对象有一个document属性,它引用了一个Document对象。这个Document对象是本章的主题,本章从学习Document对象自身的属性和方法开始。这些很有趣,但它们只是开始。 比Document对象本身更有趣的,是那些表示文档的内容的对象。HTML文档可以包含文本、图像、超链接,以及表单元素等等。JavaScript代码可以访问和操作表示每个文档元素的对象。能够直接访问表示一个文档的内容的对象。这一能力是很强大的。但是这也使事情开始变得复杂起来。 一个文档对象模型或者说DOM就是一个API,它定义了如何访问组成一个文档的对象。W3C定义了一个标准的DOM,它理所当然地在所有现代Web浏览器中得到了很好的支持。不幸的是,情况并非总是如此。客户端JavaScript编程的历史真的是DOM发展的历史(有时候是以不兼容的方式发展的)。在Web的早期,Netscape是领先的浏览器厂商,并且它为客户端脚本定义了API。Netscape 2和Netscape 3支持一个简单的DOM,它提供了仅仅对于链接、图像和表单元素这样的特殊文档元素的访问。这一遗留的DOM被所有的浏览器厂商采用,并且已经作为“0级别”DOM正式纳入到W3C标准中。这一遗留的DOM仍然在所有的浏览器中有效,将首先介绍它。 通过IE4,Microsoft控制了Web。IE4拥有一个革命性的DOM:它允许访问一个文档中的所有元素,并且允许以很多有趣的方式来脚本化很多元素。需要的话,它甚至允许改变一个文档的文本,重新排列文档的段落。Microsoft的API叫做IE4 DOM。它并没有标准化,并且IE 5以及随后采用了W3C DOM的浏览器版本也仍然支持IE 4 DOM。IE4 DOM的一部分也被其他的浏览器所采用,并且,它仍然在Web中发挥作用。在介绍了IE4 DOM的标准替代之后,将在本章末尾介绍它。 Netscape 4针对DOM采用了一种非常不同的方式,基于叫做层的动态定位的可脚本化元素。这一Netscape 4 DOM是革新的尽头,它只被Netscape 4支持,并且在由Netscape代码基础上扩展而来的Mozilla和Firefox浏览器中也被抛弃了。对Netscape 4 DOM的介绍也从本书的这一版本中删除掉了。 本章的大部分内容介绍W3C DOM标准。然而,请注意,在这里只是介绍这一标准的核心部分。脚本化文档内容正是客户端JavaScript存在的理由,并且,本书其余的各章确实是本章的延续。第16章介绍了处理CSS样式和样式表的W3C DOM标准。第17章介绍了用于处理事件(以及实现这些任务的遗留技术和特定于IE的技术)的W3C DOM标准。第18章介绍了和HTML表单元素交互的DOM。第22章介绍了如何脚本化一个HTML文档的<img>标记,以及如何为客户端Web页面添加脚本化的绘图。 DOM的0级别只是定义了一个Document类,并且本章常常非正式地称其为Document对象。可是,W3C DOM定义了一个Document API,它提供了可用于HTML和XML文档的通用文档功能,以及一个专门的HTMLDocument API,用来添加特定于HTML的属性和方法。本书第四部分的参考资料遵从了W3C的惯例,如果读者要查看特定于HTML的文档功能,那么在HTMLDocument下查找。0级别的DOM的大多数功能都是特定于HTML的,必须在HTMLDocument下查找它们,即便本章将它们引用为Document的属性和方法。

2011-12-14

JavaScript继承

在JavaScript中继承是一个非常复杂的话题,比其他任何面向对象的语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。与它们不同,在JavaScript中要想达到传承公用成员的目的,需要采取一系列措施。更有甚者,JavaScript属于使用原型式继承(我们会向你证明这其实是一个极大的优点)的少数语言之一。得益于这种语言的灵活性,你既可使用标准的基于类的继承,也可使用更微妙一些(但也可能更有效一些)的原型式继承。 本章将讨论在JavaScript中创建子类的各种技术以及它们的适用场合。

2011-12-13

脚本化浏览器窗口

在本章中,将学习如何: 把JavaScript代码注册为将要执行一次或者重复执行。 获取显示在窗口中的文档的URL,并且从这个URL中解析出查询参数。 让浏览器载入并显示一个新的文档。 告诉浏览器在它的浏览历史中后退或前进,并且学会控制如打印等其他的浏览器函数。 打开一个新的浏览器窗口,操作它们并关闭它们。 显示简单的对话框。 确定JavaScript代码在什么浏览器中运行,并且获取有关客户端环境的其他信息。 在浏览器窗口的状态栏显示任意的文本。 处理在一个窗口中发生的未捕获的JavaScript错误。 编写和多个窗口或帧交互的JavaScript代码。

2011-12-07

富有表现力的JavaScript

JavaScript是现在最流行、应用最广泛的语言之一。由于所有现代浏览器都嵌入了JavaScript解释器,所以在大多数地方都能见到其身影。作为一种语言,它在我们的日常生活中起着非常重要的作用,支持着我们访问的网站,帮助Web呈现出多姿多彩的界面。 那为什么有些人还把它看作一种玩具式的语言,认为它不值得职业程序员关注呢?我们认为其原因在于,人们没有认清这种语言的全部能力及其在当今的编程世界中的独特性。JavaScript是一种极富表现力的语言,它具有一些C家族语言所罕见的特性。 本章将探讨一些令JavaScript如此富有表现力的特性。从中你可以体会到,这种语言允许你用各种方式完成同样的任务,还允许你在面向对象编程的过程中借用函数式编程中的概念来丰富其实现方式。本章解释了究竟为什么应该使用设计模式,以及它们在JavaScript程序设计的运用是如何使代码更高效、更易于处理的。

2011-12-04

脚本化Java

尽管名字叫做JavaScript,但JavaScript和Java编程语言没有关系。尽管由于它们都是用C编程语言的语法,它们表面上有一些语法相似性,但是,它们却有很大的不同。尽管如此,JavaScript也不断发展,并且现在能够真正用来脚本化Java。Java6认识到这一事实,并且配备了一个绑定的JavaScript解释器,一般脚本化的功能能够很容易地嵌入到任何Java应用程序中。另外,一些JavaScript解释器(如绑定到Java6的JavaScript解释器)支持一个功能集,该功能集允许JavaScript和Java对象交互、设置和查询字符以及调用方法。 本章首先介绍如何把JavaScript解释器嵌入到一个Java6应用程序中,以及如何从该应用程序运行JavaScript脚本。然后,回过头来展示这些脚本如何直接脚本化Java对象。我们还将在第23章再次回到Java脚本化的话题,第23章还介绍了在一个Web浏览器环境中的Java applet和Java插件。

2011-11-16

使用正则表达式的模式匹配

正则表达式(regular expression)是一个描述字符模式的对象。JavaScript的RegExp类表示正则表达式,而String和RegExp都定义了使用正则表达式进行强大的模式匹配和文本检索与替换的函数。 ECMAScript v3对JavaScript正则表达式进行了标准化。JavaScript 1.2实现了ECMAScript v3要求的正则表达式特性的子集,JavaScript 1.5实现了完整的标准。JavaScript的正则表达式完全以Perl程序设计语言的正则表达式工具为基础。粗略地说,JavaScript 1.2实现了Perl 4的正则表达式,JavaScript 1.5实现了Perl 5的正则表达式的大型子集。 本章定义了正则表达式用来描述文本模式的语法。它还介绍了使用正则表达式的String与RegExp方法。

2011-11-14

模块和名字空间

在早些年的时候,JavaScript往往用在那些直接嵌入到Web页面中的小的简单的脚本中。随着Web浏览器和Web标准变得成熟起来,JavaScript程序也变得更长且更复杂。今天,很多JavaScript脚本依赖于用JavaScript代码编写的外部模块或库。 在编写时,有人正在致力于创建一个可复用的开源的JavaScript模块的集合。在Comprehensive Perl Archive Network(CPAN,全面的Perl存档网络)之后,JavaScript Archive Network(JSAN, JavaScript存档网络)开始流行起来,并且它希望能够为JavaScript及其社区做到CPAN为Perl语言及其社区所做的那些事情。可以访问http://www.openjsan.org了解详细情况或获取所需代码。 JavaScript没有为创建和管理模块提供任何语言功能,因此,编写可移植及可复用的JavaScript代码模块主要是要遵从一些基本的惯例,本章将介绍这些基本惯例。 最重要的惯例涉及为了避免名字空间冲突要注意名字空间的用法。当两个模块用相同的名字来定义全局属性的时候,就会发生名字空间冲突:一个模块会覆写掉另一个模块的属性,一个模块或者二者都不能正确地运行。 另一个惯例涉及模块初始化代码。在客户端的JavaScript中这尤其重要,因为那些操作Web浏览器中的文档的模块,在文档完成载入后,往往需要代码去触发模块。 下面的各节讨论名字空间和初始化。本章最后给出一个模块的扩展的例子,该模块包含一个用于模块的工具函数。

2011-11-08

javascript函数

函数(function)是定义一次但却可以调用或执行任意多次的一段JavaScript代码。函数可能有参数,即函数被调用时指定了值的局部变量。函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值。当一个函数在一个对象上被调用的时候,这个函数就叫做方法(method),它的调用所在的对象就会作为函数的一个隐式的参数来传递。读者可能已经熟悉了名为子例程(subroutine)或者过程(procedure)的函数的概念。 本章的重点是用户定义的JavaScript函数的定义和调用。另外还有一点比较重要,即JavaScript支持很多内部的函数,诸如类Array的方法eval()、parseInt()和sort()等。客户端JavaScript还定义了其他函数,如document.write()和alert()。在JavaScript中,完全可以像使用用户定义的函数那样使用内部函数。可以在第三部分和第四部分中找到更多有关内部函数的信息。 在JavaScript中,函数和对象是交织在一起的。因此,我们将某些函数特性的讨论推迟到第9章进行。

2011-10-27

对象和数组

在JavaScript中,对象和数组是两种基本数据类型,而且它们也是最重要的两种数据类型。对象和数组与字符串和数字这样的基本数据类型不同,它们不是表示一个单个的值,而是值的集合。对象是已命名的值的一个集合,而数组是一种特殊的对象,它就像数值的一组有序的集合。本章详细介绍JavaScript的对象和数组。

2011-10-21

javascript语句

javascript语句,主要讲解判断、循环、多分支选择结构语句、异常处理语句

2011-10-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除