使用暂时编辑表面来编辑文档的制作方法

文档序号:6592946阅读:180来源:国知局

专利名称::使用暂时编辑表面来编辑文档的制作方法使用暂时编辑表面来编辑文档背景文字处理应用程序传统上是安装在个人计算机上的、向存储在本地或基于网络的文件中的文档提供丰富的编辑和格式化功能的独立软件程序。这些应用程序一般非常大,从而需要许多兆字节的驱动器空间来进行安装。然而,最近趋势是可能不能访问同一独立文字处理应用程序的远程的不同用户对文档进行的协作开发,并且其中这些文档可以存储在可以通过因特网访问的远程网络上。这造成开发了可以经由常规万维网(“Web”)浏览器传递的文字处理程序,从而允许远程文档由用户在不需要安装传统独立文字处理程序的情况下进行编辑。提供基于web的文字处理功能的一种方法涉及开发利用许多web浏览器程序中可用的编辑特征的网页。这一方法有小和快的优点,并且需要的开发努力非常少。然而,这些web浏览器所提供的有限的编辑特征通常不能与传统的独立文字处理程序的特征丰富能力相比。此外,可用的编辑特征在不同的web浏览器程序之间可能不同,从而使得难以跨所有web浏览器来提供一致的用户体验。提供基于web的文字处理功能的另一方法是使用诸如来自SUNMICROSYSTEMS公司的JAVA、来自ADOBESYSTEMS公司的FLASH、或异步JavaScript与XML(“AJAX”)等跨浏览器运行时技术来实现在浏览器内执行的完整的文字处理程序。尽管允许开发者完全控制该程序的特征和能力,但该方法一般涉及相当大的开发努力并且需要实现低级编辑功能,如按照用户的键入将文本呈现在窗口中、将闪烁的光标移动通过文本、或用户键入的窗口的内容的恒定回流。另外,因为文字处理程序是以基于浏览器的运行时技术来执行的,所以在执行时它通常很慢并且可能不能提供充分响应的用户界面。此处所做出的本发明正是对于这些和其他考虑事项而提出的。概述本文描述了用于实现供在web浏览器中执行的混合编辑模型文字处理器程序的技术。具体而言,文字处理程序是以跨浏览器运行时技术来实现的并且提供可与传统的独立文字处理程序的编辑特征相比的一组丰富的编辑特征。然而,该文字处理程序利用web浏览器提供的编辑特征中的一些来实现低级编辑功能。具体而言,文字处理程序使用web浏览器来提供接受用户对各单独的文本块或段落进行的改变的编辑表面。该编辑表面是暂时的,因为它只在向用户提供低级文本编辑特征所必需的时侯是活动的。根据本文呈现的一个方面,可以使用暂时编辑表面来编辑web浏览器内的文档。就此,在web浏览器中执行的文字处理程序在浏览器窗口中显示文档。文字处理程序检测插入指针被置于该文档中的文本段落内,如通过用户用鼠标在文本内点击或通过使用键盘的导航键来导航到该段落。在检测到放置了插入指针时,文字处理程序创建覆盖该文档中的该段落的编辑表面。这可以通过向该文档添加与底层段落处于同一位置处并且相同大小的编辑表面元素,同时使底层段落不可见来实现。在一个方面,编辑表面元素可以是超文本标记语言(“HTML”)IFRAME元素。底层段落的内容被复制到编辑表面中。文字处理程序随后监视用户在浏览器窗口中的输入,从而允许编辑表面直接处理某些输入,同时截取其他输入以供该文字处理程序来处理。根据一个方面,文字处理程序将来自键盘的字母、数字、以及标点键输入直接传递给编辑表面,同时截取鼠标点击或诸如下一页(page-down)或上一页(page-up)等导航键。编辑表面处理用户输入,从而允许用户对其中包含的内容进行改变。文字处理程序在编辑表面处理用户输入时对它进行监视以确定是否需要该编辑表面的回流。例如,对编辑表面内的内容的改变可能必须改变编辑表面的大小或其在浏览器窗口中的位置。如果需要回流,则将编辑表面的经修改的内容复制回文档,并且迫使web浏览器在该页面上重新呈现该文档。随后确定底层段落的新位置和大小,并且重新定位编辑表面并调整其大小以与底层段落的新位置和大小相匹配。在编辑完成时,将编辑表面的经修改的内容复制回文档,销毁编辑表面,并且再次使底层段落可见。应当理解,上述主题也可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本发明的任一部分中提及的任何或所有缺点的实现。附图简述图1是示出由本文呈现的各实施例提供的说明性操作环境和若干软件组件的各方面的网络和软件体系结构图;图2A-2C是示出根据本文描述的一个实施例的暂时编辑表面的操作的说明性屏幕截图的屏幕图;图3-5是示出提供在本文描述的各实施例中的、提供暂时编辑表面的文字处理程序的操作的各方面的流程图;以及图6是示出能够实现此处呈现的实施例的各方面的计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图。详细描述以下详细描述针对用于在浏览器内提供文字处理功能的技术。通过使用本文呈现的技术和概念,可以在浏览器内实现文字处理程序,该文字处理程序提供与传统的独立文字处理程序的体验相类似的特征丰富的文字处理体验而不需要该程序实现管理对文本的编辑的低级细节。这是通过实现完整的自定义开发的文字处理程序与web浏览器的内容编辑特征之间的混合来实现的。该文字处理程序提供高级文字处理功能,同时使用web浏览器的编辑特征来执行低级文本编辑功能,如按照用户的键入在窗口中呈现文本,将闪烁光标移动通过文本,或在用户键入时恒定地回流窗口的内容。web浏览器的编辑特征被用来暂时地将编辑表面置于窗口中来代替正在编辑的文档的内容。可编辑表面是暂时的,因为它只在需要的时候保持可见和活动。一旦对内容的编辑完成,则销毁编辑表面并且将经修改的文档显示给用户。尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中呈现了此处描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施此处描述的主题,这些计算机系统配置包括手持式设备、多处理器系统,基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。在下面的详细描述中,将参考构成本发明的一部分的附图,并且在附图中作为说明示出了各具体实施例或示例。现在参考附图,将描述用于使用暂时编辑表面来编辑文档的计算系统和方法的各方面,其中全部若干附图中相同的标号表示相同的元素。现在转向图1,将提供关于由此处呈现的各实施例所提供的说明性操作环境和若干软件组件的细节。具体而言,图1示出用于使用暂时编辑表面来编辑文档的系统100的各方面。系统100包括计算机120,计算机120包括能够执行操作系统和一个或多个应用程序的标准台式或膝上型计算机系统。计算机120在操作上连接到显示器104、鼠标108、以及键盘110,以允许用户102与在计算机120上执行的系统和应用程序进行交互。计算机120通过诸如网络160等一个或多个局域网和广域网来互连到服务器计算机162。应该理解,可利用比图1中示出的多得多的网络连接。计算机120可用于执行web浏览器122,web浏览器122在操作上经由网络160连接到服务器计算机162所执行的web服务器164。在一个实施例中,web浏览器122是能够显示HTML文档的应用程序,如来自微软公司的INTERNETEXPLORER、来自M0ZILLA的FIREF0X、或来自APPLE公司的SAFARI,等等。然而,本领域技术人员可以明白,可以使用能够呈现标记语言并执行脚本逻辑的任何类型的应用程序来实现web浏览器122。web服务器164包括能够向web浏览器122提供文档的任何软件程序。web服务器162还连接到包含文档和文字处理程序140的数据存储168,这将在以下更详细地描述。根据一个实施例,这些文档可包括提供给web浏览器122的HTML文档128。在计算机120的用户102进行请求时,web浏览器122可用于从web服务器164检索HTML文档128并将其呈现在显示器104的窗口106中以呈现给用户102。如以上简要讨论的,系统100还包括可用于允许计算机120的用户102在窗口106中对HTML文档128的内容进行编辑的文字处理程序140。根据一个实施例,文字处理程序140能够在web浏览器122所提供的运行时环境内执行。例如,可以使用AJAX开发技术来创建文字处理程序140。在一个实施例中,从web服务器164中检索文字处理程序140连同要编辑的文档128。在替换实施例中,文字处理程序140可驻留在计算机120本地。文字处理程序140包括可用于向用户102提供文字处理功能的文字处理逻辑148。在一个实施例中,文字处理程序140维护在内部文档图像150中被编辑的文档的内容。在其他实施例中,文字处理程序140维护在HTML文档128中直接被编辑的文档的内容。HTML呈现器124呈现HTML文档128以供显示。在一个实施例中,文字处理程序140包括监视来自用户输入处理器126的用户输入事件的事件处理逻辑146。如以下将参考图3详细描述的,事件处理逻辑146可用于检测用户102将插入指针置于HTML文档128(如在窗口106中显示的)中的某位置处。事件处理逻辑146还可用于监视对文档的内容的编辑期间的用户输入事件,如以下参考图4描述的。文字处理程序140还包括在窗口106中创建用于接受对文档的内容的改变的编辑表面的编辑表面创建逻辑144,这在以下参考图3来详细描述。在一个实施例中,通过向HTML文档128添加用于创建编辑表面元素130的标记来创建编辑表面,编辑表面元素130在被web浏览器122呈现时在窗口106中显示编辑表面。另外,文字处理程序140包括回流逻辑142。如以下将参考图5详细描述的,在用户102改变编辑表面208中的内容时,回流逻辑142维护编辑表面208的大小和位置。现在参考图2A-2C,示出了根据一个实施例的、由在web浏览器122中执行的文字处理程序140所生成的窗口106的说明性屏幕截图。如图2A所示,窗口106显示HTML文档128的主体正文中包含的文本段落202以及HTML文档128的表204中的文本块。希望编辑文本段落202的用户102可以使用鼠标108来在窗口106中将鼠标指针(在此示为文本插入指针即插入记号206)定位在文本段落202中的一位置处,并点击鼠标108上的按钮。文字处理程序140的事件处理逻辑146检测到鼠标点击,且插入指针206处于段落202内,并且使得编辑表面创建逻辑144在窗口106中创建覆盖文本段落202的编辑表面208A,如图2B所示。应当明白,本文描述的由鼠标执行的用户输入活动可以使用另一类型的输入设备来提交。如以下将参考图3详细描述的,编辑表面创建逻辑144创建编辑表面208A,使得它在窗口106中表现得与文本段落202大小相同并处于同一位置。编辑表面创建逻辑144还将段落202的内容复制到编辑表面208A中,并使得段落202在窗口106中不可见。注意,尽管段落202在窗口106中不再可见,但它在窗口106内仍然占据同一物理空间,并且因而实际上处于编辑表面208A的底层。对应于用户102将插入指针206置于段落202内的位置,编辑表面创建逻辑144随后将光标210定位在编辑表面208A中。应当注意,在图2B的屏幕截图中示出的编辑表面208A的边界只是出于说明目的的。在窗口106中不为编辑表面208A创建实际边界。如各实施例中描述的创建编辑表面208A,将底层段落202的内容复制到编辑表面208A并使得底层段落在窗口中不可见的过程,对用户102而言是察觉不到的。用户102可察觉的对窗口106的唯一改变是在插入指针206的放置位置处创建光标210。编辑表面208A在窗口106中维持活动以允许用户102对编辑表面208A的文本内容进行低级编辑。例如,在一个实施例中,编辑表面208A允许用户102向光标210的当前位置处的文本添加或从中删除字符。如果用户102向文字处理程序140请求更高级编辑功能,或在窗口106中导航到HTML文档128的不同部分,则用用户120在编辑表面208A中所进行的编辑来更新HTML文档128并销毁编辑表面208A,这在以下将参考图4来描述。例如,如果用户102将插入指针206置于显示在窗口106中的表204内的文本块中,则销毁编辑表面208A,并且用来自编辑表面208的任何编辑来更新处于编辑表面208A底层的文本段落202并使其再次在窗口106中可见,如图2C所示。如上所示,创建覆盖表204内的文本块的新编辑表面202B,并且在该新编辑表面208B内创建用于插入文本的光标210。现在参考图3,将提供关于本文呈现的用于使用暂时编辑表面来编辑文档的各实施例的附加细节。具体而言,图3是示出在窗口106中创建暂时编辑表面208的操作的各方面的流程图。应理解,此处所述的逻辑操作被实现为(1)一系列计算机实现的动作或运行于计算系统上的程序模块,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。取决于计算系统的性能及其他要求,可以选择不同的实现。因此,此处描述的逻辑操作被不同地称为状态操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑以及它们的任何组合来实现。还应该明白,可以执行比附图中示出并在此处描述的操作更多或更少的操作。这些操作还可以按与此处所描述的不同的次序来执行。例程300在操作302开始,在此事件处理逻辑146检测用户102将插入指针206置于窗口106内的某一位置。如上所述,在一个实施例中,用户102可以使用鼠标108或通过使用键盘110的导航键将当前光标210从HTML文档128的一个部分移动到留一个备份来将插入指针置于窗口106中的某一位置。在替换实施例中,用户102可以通过用手指或指示笔触摸显示器104来将插入指针206置于窗口106中的某一位置。在检测到放置了插入指针206后,例程300移至操作304,在此编辑表面创建逻辑144确定HTML文档128中的、当前显示在窗口106内的插入指针206被放置的位置处的部分。在一个实施例中,HTML文档128可被分成该文档的主体正文或诸如表204的单元格等其他容器内所包含的各个文本段落202。在用户102通过使用鼠标108来放置插入指针206时,编辑表面创建逻辑144请求HTML文档128内的、与从web浏览器122中点击鼠标108的位置相对应的段落202的身份。如果用户102通过使用键盘110的导航键来放置插入指针206,则编辑表面创建逻辑144通过分析HTML文档128的内容来确定正确的段落。在替换实施例中,可能需要对该文档的其他划分。从操作304,例程300继续至操作306,在此编辑表面创建逻辑144确定段落202内的、与窗口106内的其中放置插入指针206的位置最紧密地对应的字符位置。这一字符位置会被用来将光标210定位在编辑表面208中的、与段落内放置插入指针206的位置相对应的位置处。在一个实施例中,编辑表面创建逻辑144使用二分搜索算法来确定字符位置。例如,诸如SPAN元素等HTML元素被置于HTML文档128中、处于包含该段落的文本的标记的中间的字符位置处。从web浏览器122请求SPAN元素的位置在窗口106内的坐标,并将该坐标与插入指针206的放置坐标相比较以确定插入指针206在该文本中是被置于SPAN元素之前还是之后。再次重复该过程,分别将SPAN元素置于该标记的前一半或后一半的中间并以迭代的方式继续,直至确定了段落202中的、与插入指针206的位置相对应的字符位置。从操作306,例程300继续至操作308,在此编辑表面创建逻辑144确定当被显示在窗口106中时段落202的当前位置和尺寸。在一个实施例中,一旦标识了段落202,就向web浏览器122请求这一信息。编辑表面创建逻辑144随后在窗口106中、在与段落202相同的位置处并以相同的尺寸来创建编辑表面208,如在操作310所示。在一个实施例中,编辑表面创建逻辑144通过向HTML文档128添加标记以用于创建编辑表面元素130诸如HTMLIFRAME元素等来创建编辑表面208。通过将编辑表面元素130的contentEditable(内容可编辑)属性设为“true(真)”来将其变得可编辑。在替换实施例中,编辑表面元素130可以是其contentEditable属性被设为“true”的HTMLDIV元素或HTMLTEXTAREA元素。编辑表面创建逻辑144设定编辑表面元素130的大小和位置属性,以便web浏览器122在与段落202相同的位置并以相同的大小来在窗口106中呈现它。如本领域技术人员将明白的,如果插入指针206被置于新或空段落中使得该段落的当前大小是零,则编辑表面创建逻辑144创建具有足够高度和宽度以正确地显示光标210和用户102键入的前几个字符的编辑表面208。从操作310,例程300移至操作312,在此编辑表面创建逻辑144将HTML文档128中的段落202的内容复制到编辑表面208中。这包括将HTML文档128中的段落202内包含的文本复制到编辑表面元素130以及将编辑表面元素130的属性设定成与应用于HTML文档128中的段落202的那些属性相同。在操作314,编辑表面创建逻辑144随后使段落202在窗口106中不可见。如上所述,这是以段落202在窗口106中不再对用户102可见而仍然占据窗口106内的同一物理空间的方式来实现的。例如,在一个实施例中,HTML文档128中的段落202的可见性属性被设定成“隐藏”。例程300随后移至操作316,编辑表面创建逻辑144将光标210定位在编辑表面208中、与其中放置插入指针206的字符位置(在操作306计算)相对应的字符位置处。在一个实施例中,这是通过将当前选择设定成该字符位置处的空文本范围来实现的。接着,例程300前进至操作318,在此编辑表面创建逻辑144向编辑表面208注册事件处理逻辑146的事件处理程序。如以下将参考图4更详细地描述的,这允许事件处理逻辑146处理来自编辑表面208的鼠标、键盘、以及其他浏览器事件,如滚动。在操作320,将窗口106中的当前焦点设定到编辑表面208。图4是示出当编辑表面208在窗口106中活动时,处理编辑表面208或web浏览器122所生成的事件的操作的各方面的流程图。例程400在操作402开始,在此事件处理逻辑146检测编辑表面208已生成了事件,该事件主要是作为如通过点击鼠标108或在键盘110上键入等用户输入的结果。在检测到用户输入事件后,在操作404,事件处理逻辑146确定编辑表面元素130是否将在本地处理该用户输入。在一个实施例中,如果用户输入表示在键盘110键入的字符,则事件处理逻辑146将键入的字符与要由编辑表面元素130处理的字符列表相比较。例如,如果键入的字符是字母、数字、或标点字符,则事件处理逻辑146确定它将由编辑表面元素130来处理。然而,如果键入字符可造成对文本的格式改变,如CTRL-B,则它将不被转发到编辑表面元素130来进行处理。在替换实施例中,事件处理逻辑146可以允许编辑表面元素130处理附加键盘输入,如光标导航键或复制和粘贴快捷键。如果事件处理逻辑146确定编辑表面元素130将在本地处理该用户输入,则例程400前进至操作141,在此将用户输入传递到编辑表面元素130以供处理。在编辑表面元素130处理了该用户输入后,例程400前进至操作416,在此执行回流逻辑142。这将在以下参考图5来详细描述。在一个实施例中,事件处理逻辑146在将用户输入传递给编辑表面元素130之前将web浏览器122中的计时器设定成超时值为零。以此方式,在编辑表面元素130处理了该用户输入后可立即生成对应的计时器事件,从而允许事件处理逻辑146执行回流操作。如果事件处理逻辑146确定编辑表面元素130将不在本地处理用户输入,则例程400移至操作406,在此事件处理逻辑146将文本(包括用户102进行的任何改变)从编辑表面208复制回HTML文档128的底层段落202。事件处理逻辑146随后通过从HTML文档128中移除编辑表面元素130来销毁编辑表面208,如操作408所示。在操作410,使底层段落202可见,从而反转在操作314中进行的改变。在一个实施例中,这通过将段落202的可见性属性设定成“可见”来实现。在操作412,事件处理逻辑146随后将用户输入传递到文字处理逻辑148以供进一步处理。图5是示出当HTML文档128内的编辑表面208在窗口106中活动时执行该编辑表面的回流的操作的各方面的流程图。在本文描述的各实施例中,添加到HTML文档的用于创建编辑表面元素130的HTML标记可以不造成在用户102编辑其中包含的内容时其大小将在窗口106中正确地增长或缩小的编辑表面208。例如,HTMLIFRAME元素在编辑其内容期间其本身将不会正确地调整大小。这可造成编辑表面208中的内容溢出其边界,从而造成当显示在窗口106中时编辑表面208在其边界内向上或向下滚动其内容。为防止这一点发生,在用户102编辑内容时,回流逻辑142动态地维护编辑表面208在窗口106中的大小和位置。另外,回流逻辑142确保底层不可见段落202的大小和位置保持与活动的编辑表面208相同的大小,以确保HTML文档128的其余部分正确地在编辑表面208的周围流动。在此,该过程被称为“回流”。例程500在操作502开始,在此回流逻辑142确定编辑表面208的回流是否是必需的。在一个实施例中,当编辑表面元素130在本地处理了每一用户输入事件之后,回流逻辑142可以执行回流操作。例如,当用户102在键盘110上键入了每一字符后,可以回流编辑表面208。在另一实施例中,回流逻辑142可以通过事件处理逻辑146监视web浏览器事件以确定回流操作是否是必需的。例如,回流逻辑142可以只响应于编辑表面208所生成的滚动事件,即指示溢出条件已经发生,来执行编辑表面208的回流操作。在又一实施例中,回流逻辑142可以对编辑表面208的内容执行文本度量计算以确定溢出条件发生的可能性,并且如果存在发生溢出的高可能性,则将执行回流操作。在确定需要编辑表面208的回流后,例程500前进至操作504,在此回流逻辑142将文本(包括用户102进行的任何改变)从编辑表面208复制回HTML文档128的底层段落202。在操作506,回流逻辑142使web浏览器122在窗口106中重新呈现HTML文档128,从而触发web浏览器122重新计算底层段落202的位置和大小,底层段落202现在包含将在窗口106中显示的、编辑表面208的经修改的内容。回流逻辑142随后确定在窗口106中显示的底层段落202的新位置和尺寸,如在操作508中所示。在一个实施例中,简单地向web浏览器122请求这一信息。一旦知道了新位置和尺寸,则例程500前进至操作510,在此回流逻辑142在窗口106中重新定位编辑表面208并调整其大小,以与底层段落202的相匹配。图6示出了能够执行本文所描述的用于以上述方式使用暂时编辑表面来编辑文档的软件组件的计算机600的说明性计算机体系结构。图6所示的计算机体系结构示出常规台式、膝上型或服务器计算机,并可以用来执行本文呈现的被描述为在计算机120或服务器计算机162上执行的软件组件的任何方面。图6所示的计算机体系结构包括中央处理单元602(“CPU”)、包括随机存取存储器614(“RAM”)和只读存储器(“ROM”)616的系统存储器608、以及将存储器耦合至CPU602的系统总线604。基本输入/输出系统被存储在ROM616中,该系统包含帮助诸如在启动期间在计算机600中的元件之间传递信息的基本例程。计算机600还包括用于存储操作系统610、应用程序和其他程序模块的大容量存储设备618,这将在本文中更为详尽地描述。大容量存储设备610通过连接至总线604的大容量存储控制器(未示出)连接到CPU602。大容量存储设备610及其相关联的计算机可读介质为计算机600提供非易失性存储。虽然对这里包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机600访问的任何可用计算机存储介质。作为示例而非限制,计算机可读介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块之类的信息或其他数据的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机可读介质包括但不限于,RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储器技术、⑶-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机600访问的任何其他介质。根据各实施例,计算机600可以使用通过诸如网络620之类的网络到远程计算机的逻辑连接来在联网环境中操作。计算机600可以通过连接至总线604的网络接口单元606来连接到网络620。应该明白,网络接口单元606还可以被用来连接到其他类型的网络和远程计算机系统。计算机600还可以包括用于接收和处理来自多个其它设备的输入的输入/输出控制器612,这些设备包括键盘、鼠标或者电子指示笔(未在图6中示出)。类似地,输入/输出控制器可以提供至显示屏、打印机或其他类型的输出设备(也未在图6中示出)的输出。如前简述的那样,多个程序模块和数据文件可以存储在计算机600的大容量存储设备610和RAM614内,包括适于控制联网的台式计算机、膝上型计算机或服务器计算机的操作的操作系统618。大容量存储设备610和RAM614还可以存储一个或多个程序模块。具体而言,大容量存储设备610和RAM614可存储web浏览器122或web服务器164应用程序,其每一个都在上文参考图1-5详细描述。大容量存储设备610和RAM614还可存储其他类型的程序模块。基于上述内容,应该明白,本文提供了用于使用暂时编辑表面来编辑文档的技术。虽然以计算机结构特征、方法动作、以及计算机可读的介质专用的语言描述了本文呈现的主题,但是应该理解,在所附权利要求书中所限定的本发明不一定仅限于本文描述的具体特征、动作、或介质。相反,这些具体特征、动作和介质是作为实现权利要求的示例形式来公开的。上述主题仅作为说明提供,并且不应被解释为限制。可对此处所述的主题作出各种修改和改变,而不必遵循所示和所述的示例实施例和应用,且不背离所附权利要求书中所述的本发明的真正精神和范围。权利要求一种用于编辑文档(128)的方法,所述方法包括在窗口(200)中呈现所述文档(128);接收编辑所述文档(128)的一部分(202、204)的请求;响应于所述请求,创建在被显示在所述窗口(200)中时覆盖所述文档(128)的所述部分(202、204)的编辑表面(208)并将所述文档(128)的所述部分(202、204)复制到所述编辑表面(208)在所述编辑表面(208)内接收对所述文档(128)的所述部分(202、204)的一个或多个改变;接收停止编辑所述文档(128)的所述部分(202、204)的请求;以及响应于接收到所述请求,将所述一个或多个改变应用于所述文档(128)并销毁所述编辑表面(208)。2.如权利要求1所述的方法,其特征在于,接收编辑所述文档的一部分的请求包括检测插入指针被置于所述窗口中的一位置处;以及确定所述文档中显示在所述窗口内的所述插入指针的位置处的部分。3.如权利要求2所述的方法,其特征在于,还包括在确定了所述文档中显示在所述窗口内的所述部分后,确定文本内、位于所述文档中与所述插入指针的位置相对应的所述部分中的字符位置;以及在创建了覆盖所述文档中显示在所述窗口中的所述部分的编辑表面后,在所述编辑表面内将光标定位在所述文档的所述部分的文本中的字符位置处。4.如权利要求1所述的方法,其特征在于,所述文档包括标记语言中、由web浏览器呈现在所述窗口中的元素。5.如权利要求4所述的方法,其特征在于,放置在被显示在所述窗口中时覆盖所述文档的所述部分的编辑表面还包括确定在被显示在所述窗口中时所述文档的所述部分的位置和大小;使所述文档的所述部分在被显示在所述窗口中时不可见;以及在所述文档中创建编辑表面元素,所述文档在由所述web浏览器呈现时使得所述编辑表面显示在所述窗口中、所述文档的所述部分的位置处并以所述部分的大小来显示。6.如权利要求5所述的方法,其特征在于,所述web浏览器所呈现的标记语言包括超文本标记语言(HTML),并且在所述文档中创建的编辑表面元素是HTMLIFRAME元素、HTMLDIV元素以及HTMLTEXTAREA元素之一。7.如权利要求5所述的方法,其特征在于,在所述编辑表面内接收对所述文档的所述部分的一个或多个改变包括在所述窗口内接收输入;在接收到所述输入后,确定所述编辑表面元素是否将处理该输入;在确定所述编辑表面元素将处理所述输入后,将所述输入传递到所述编辑表面元素以供处理,以及对所述编辑表面元素执行回流操作;以及在确定编辑表面元素将不处理所述输入后,将所述一个或多个改变应用于所述文档,从所述文档中移除所述编辑表面元素,以及使所述文档的所述部分在被显示在所述窗口中时可见。8.如权利要求7所述的方法,其特征在于,对所述编辑表面元素执行回流操作包括确定是否需要在所述窗口中回流所述编辑表面元素;以及在确定需要回流所述编辑表面元素后,将所述一个或多个改变应用于所述文档,使所述web浏览器在所述窗口中重新呈现所述文档,确定在被显示在所述窗口中时所述文档的所述部分的新位置和新大小;以及修改所述文档中的编辑表面元素,使其由所述web浏览器呈现在所述窗口中的、所述文档的所述部分的新位置处并以所述新大小来呈现。9.如权利要求7所述的方法,其特征在于,确定所述编辑表面元素是否将处理所述输入包括确定所述输入是否是键盘上的字母键、标点键、数字键之一被按下的结果。10.一种其上存储有计算机可执行指令的计算机存储介质,所述指令在由计算机执行时使得所述计算机在web浏览器(122)生成的窗口(200)中显示标记语言文档(128);检测插入指针(206)被置于所述窗口(200)中的某一位置处;在确定放置了插入指针之后,确定文档(128)中、显示在所述窗口(200)中所述插入指针(206)的位置处的部分(202,204);在所述窗口(200)中创建覆盖所述文档(128)的所述部分(202、204)的编辑表面(208)并将所述文档(128)的所述部分(202、204)复制到所述编辑表面(208);检测所述窗口中的输入(200);在检测到所述窗口中的输入后,确定所述编辑表面(208)是否将处理所述输入;在确定所述编辑表面将处理所述输入后,将所述用户输入传递到所述编辑表面(208)以允许所述编辑表面接受对所述文档(128)的所述部分(202、204)的改变以及执行所述编辑表面(208)的回流操作(142);以及在确定所述编辑表面将不处理所述输入后,用来自所述编辑表面(208)的改变来更新所述文档(128)的所述部分(202、204)以及销毁所述编辑表面(208)。11.如权利要求10所述的计算机存储介质,其特征在于,在所述窗口中创建覆盖所述文档的所述部分的编辑表面包括确定在被显示在所述窗口中时所述文档的所述部分的当前位置和大小;确定所述文档所述部分的任何文本内的、与所述插入指针的位置相对应的字符位置;使所述文档的所述部分由所述web浏览器在所述窗口中呈现为不可见的;向所述文档添加标记语言以使所述web浏览器在所述窗口中在所述文档的所述部分的当前位置处呈现编辑表面并以所述部分的当前大小来呈现;将所述文档的所述部分的文本复制到所述编辑表面中;以及在所述编辑表面中将光标置于所述文档的所述部分的文本中的所述字符位置处;12.如权利要求11所述的计算机存储介质,其特征在于,所述web浏览器所呈现的标记语言是超文本标记语言(HTML),并且被添加到所述文档以使所述web浏览器呈现编辑表面的标记语言创建HTMLIFRAME元素、HTMLDIV元素以及HTMLTEXTAREA元素之一。13.如权利要求10所述的计算机存储介质,其特征在于,执行所述编辑表面的回流操作包括确定是否需要在所述窗口中回流所述编辑表面;以及在确定需要回流后,在所述窗口中用来自所述编辑表面的改变来更新所述文档的所述部分,使所述web浏览器在所述窗口中重新呈现所述文档,以及在所述窗口中重新定位所述编辑表面以覆盖所述文档的所述部分。14.如权利要求10所述的计算机存储介质,其特征在于,确定所述编辑表面是否将处理所述输入包括确定所述输入是否是键盘上的字母键、标点键、数字键之一被按下的结果。15.一种用于在web浏览器(122)内执行的文字处理程序(140)中提供暂时编辑表面(208)的方法,所述方法包括检测用户(102)将插入指针(206)置于正在所述文字处理程序(140)中编辑的文档(128)的文本段落(202、204)内;在检测到放置了所述插入指针时,确定所述插入指针(206)被置于所述文本内的字符位置;确定在被显示在所述web浏览器生成的窗口(200)中的页面内时所述段落(202、204)的当前位置和大小;在所述页面上、在被显示在所述页面内时所述段落(202、204)的位置处并以所述段落的大小来创建编辑表面(208);将所述文本复制到所述编辑表面(208);使所述段落(202、204)在被显示在所述页面内时不可见;将所述光标(210)置于所述编辑表面(208)中的所述插入指针(206)的字符位置处;检测所述窗口(200)内的用户输入(146);在检测到所述用户输入后,确定所述编辑表面(208)是否将处理所述用户输入;在确定所述编辑表面将处理所述用户输入后,将所述用户输入传递到所述编辑表面(208)以供处理,确定是否需要回流所述编辑表面,以及在确定需要回流所述编辑表面后,执行所述编辑表面(120、208)的回流操作(142);以及在确定所述编辑表面将不处理所述用户输入后,用来自所述编辑表面(208)的文本来更新所述页面中的所述段落(202、204),使所述段落(202、204)在被显示在所述页面内时可见;销毁所述编辑表面(208),以及将所述用户输入传递到所述文字处理程序(140)以供处理。16.如权利要求15所述的方法,其特征在于,执行所述编辑表面的回流操作包括用来自所述编辑表面的文本来更新所述页面中的所述段落;使所述web浏览器在所述窗口中呈现所述页面;确定在被显示在所述页面内时所述段落的新位置和新大小;以及在所述编辑表面被显示在所述页面内时将所述编辑表面在所述页面中的位置和大小修改成所述段落的新位置和新大小。17.如权利要求15所述的方法,其特征在于,在所述页面上创建编辑表面包括向所述web浏览器中的所述页面添加超文本标记语言(HTML)IFRAME元素。18.如权利要求15所述的方法,其特征在于,检测所述窗口内的用户输入包括从所述web浏览器截取键盘和鼠标事件。19.如权利要求15所述的方法,其特征在于,确定所述编辑表面是否将处理所述用户输入包括确定所述用户是否按下键盘的字母键、标点键、或数字键之一。20.如权利要求15所述的方法,其特征在于,确定是否需要回流所述编辑表面包括确定所述编辑表面对所述用户输入的处理是否使得所述编辑表面内的文本在被所述web浏览器呈现在所述页面上时超过所述编辑表面的大小。全文摘要本发明描述了用于使用暂时编辑表面来编辑文档的技术。文字处理程序在窗口中显示文档。在检测到将插入指针置于该文档中的文本段落内时,在窗口中创建覆盖该段落并包含该底层段落的内容的编辑表面。在编辑表面处理对内容的编辑时,文字处理程序监视用户输入。在编辑完成时,将编辑表面的经修改的内容复制到文档中并销毁编辑表面。文档编号G06F17/21GK101952821SQ200980106644公开日2011年1月19日申请日期2009年1月21日优先权日2008年2月25日发明者E·D·百利申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1