用于演示文稿应用的嵌入式web查看器 [0001] 背景 [0002] 诸如文字处理应用、电子表格应用、演示文稿应用等软件应用传统上被本地地安装在计算机系统上。这些软件应用通常绑定到其上根据各种许可协议来安装软件应用的特定计算机系统或计算机系统的集合。除了购买许可证和在多个计算机系统上安装软件应用的成本之外,为了修复隐错、修复安全性而升级应用以及其它升级的需求和潜在的附加成本可能由于一些用户不按推荐更新其软件应用而促进软件分化。 [0003] 由于这些和其它问题,被开发成供本地安装的许多软件应用现在在某些情况下被专门开发为web应用。这种到web应用的迁移允许软件开发者一致地提供最新版本,而不涉及软件分化。web应用还通过准许用户从具有因特网连接和兼容的web浏览器的任何计算机系统创建、查看和编辑内容来向用户提供更灵活的工作环境。此外,由于与制造、运输和库存盘或其上存储有软件应用的其它介质相关联的开销花费的减少,可免费或以低于传统软件应用的成本提供web应用。 [0004] 特定web应用使用web部件来提供内容和功能。web部件是在网页的上下文内部运行的服务器侧控件。web部件给予用户通过简单地将其添加到网页来向网页添加功能的能力。存在允许用户添加与特定web应用相关联的内容的web部件,然而不存在用于向网页添加诸如使用可从美国华盛顿州雷蒙德市的微软公司购买的本机MICROSOFT POWERPOINT或其web版本来创建的内容之类的演示文稿内容的web部件。 [0005] 除了提供供显示的内容之外,还经常期望利用网页上的另一web部件或其它控件来操纵一个web部件中所显示的内容。例如,可能期望在一页面中在诸如地图、列表和/或其它交互式用户界面元素等其它内容的上下文中显示演示文稿内容,以使得当用户选择地图上的一个地方、列表中的一个项目或以其它方式与用户界面元素交互时,以有意义的方式显示演示文稿内容。 [0006] 本文所做出的本公开正是关于这些和其他考虑事项而提出的。 [0007] 概述 [0008] 本文描述了用于利用演示文稿web部件在网页中嵌入演示文稿内容的概念和技术。根据本文公开的概念和技术,演示文稿web部件被配置成创建诸如内联框架(“iFrame”)等其中可显示演示文稿内容的web元素。iFrame是被配置成诸如用于显示演示文稿内容的查看器(如此处所公开的)等外部对象的超文本标记语言(“HTML”)元素。 [0009] 演示文稿web部件配置有用作诸如postMessage(发布消息)包装器等包装器的外部应用编程接口(“API”),以供内部API调用演示文稿web应用的功能以便诸如经由前进通过演示文稿内容的各幻灯片来操纵演示文稿内容。用作包装器的外部API可调用一方法来允许来自被嵌入网页的不同对象的内部API和外部API之间的协作信息交换。 [0010] 根据一方面,iFrame作为演示文稿web部件的一部分显示在网页中,并且演示文稿内容被显示在iFrame中。内部API在诸如postMessage等消息中从外部API接收指令并根据内部API接收到的指令来操纵内联框架内的演示文稿内容。 [0011] 根据另一方面,演示文稿内容被缩放到多个大小并被高速缓存。接收对演示文稿内容的请求,并且响应于该请求,检索演示合适大小的文稿内容并将其插入目标iFrame。 [0012] 根据又一方面,创建其中显示演示文稿内容的iFrame。在iFrame中执行用于查看演示文稿内容的web应用,并且作为执行web应用的结果在内联框架内显示演示文稿内容。 [0013] 应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种其他特征将变得显而易见。 [0014] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本发明内容用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或所有缺点的实现。 [0015] 附图简述 [0016] 图1是示出用于此处公开的各实施例的示例性操作环境的系统图。 [0017] 图2是示出根据一示例性实施例的演示文稿web部件的图示。 [0018] 图3是示出根据一示例性实施例的设置用户界面的图示。 [0019] 图4是示出根据一示例性实施例的用于执行包括演示文稿web部件的网页的方法的各方面的流程图。 [0020] 图5是示出根据一示例性实施例的用于高速缓存演示文稿数据的方法的各方面的流程图。 [0021] 图6是示出根据一示例性实施例的用于选择演示文稿束尺寸的方法的各方面的流程图。 [0022] 图7是示出根据一示例性实施例的用于调用web应用的实现的方法的各方面的流程图。 [0023] 图8是示出根据一示例性实施例的用于在外部应用编程接口(“API”)和调用该外部API的应用之间进行通信的方法的各方面的流程图。 [0024] 图9是示出能够实现此处所提出的实施例的各方面的计算系统的示例性计算机硬件和软件体系结构的计算机体系结构图。 [0025] 详细描述 [0026] 以下详细描述涉及用于利用演示文稿web部件来在网页中嵌入演示文稿内容的概念和技术。根据本文公开的概念和技术,演示文稿web部件被配置成创建诸如iFrame等其中可显示演示文稿内容的web元素。演示文稿web部件配置有用作诸如发布消息包装器等包装器的外部API,以供内部API调用演示文稿web应用的功能以便诸如经由前进通过演示文稿内容的各幻灯片来操纵演示文稿内容。 [0027] 尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一般上下文中提出了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利用其他计算机系统配置来实施本文描述的主题,这些计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。 [0028] 在以下详细描述中,参考了构成详细描述的一部分并作为说明示出了各具体实施方式或示例的附图。现在参考附图,在其中相同的附图标记贯穿若干附图表示相同的元素,将描述用于利用演示文稿web部件来在网页中嵌入演示文稿内容的计算系统、计算机可读存储介质、以及计算机实现的方法的各方面以及其它方面。 [0029] 现在参考图1,将描述用于本文所提出的各实施例的一个操作环境100的各方面。 操作环境100包括在网络104上操作或与网络104通信的客户机计算机102。客户机计算机102被配置成执行操作系统106以及一个或多个应用程序,诸如举例而言web浏览器108和/或其他应用程序。 [0030] 操作系统106是用于控制客户端计算机102的操作的计算机程序。应用程序是被配置成在操作系统106之上执行以提供如本文所述的各种功能的可执行程序。web浏览器 108是用户可用来经由网络104访问万维网(“web”)上的信息资源的应用程序。此外,web浏览器108允许用户访问服务器计算机110提供的信息和各种功能。 [0031] 所示服务器计算机110被配置成执行操作系统112以及协作平台114中的一个或多个应用程序,包括例如一个或多个web应用116和/或其它应用程序。操作系统112是用于控制服务器计算机110的操作的计算机程序。应用程序是被配置成在操作系统112之上执行以提供如本文所述的各种功能的可执行程序。具体而言,一个或多个web应用116是可由web浏览器108通过网络104访问的应用程序。 [0032] 在一些实施例中,web应用116至少包括演示文稿web应用,但还可包括一个或多个文字处理应用、电子表格应用、演示文稿应用、电子邮件应用、日历应用、绘图应用和/或可由web浏览器108访问的其它应用。例如,web应用116可包括全都可以从华盛顿州雷蒙德市的微软购买的MICROSOFT WORD,MICROSOFT EXCEL,MICROSOFT POWERPOINT,MICROSOFT OUTLOOK和/或MICROSOFT VISIO的基于web的版本。另选地或另外地,web应用 116可包括全都可以从加利福尼亚州山景城的谷歌购买的GOOGLE DOCUMENTS,GOOGLE SPREADSHEETS,GOOGLE PRESENTATIONS,GOOGLE MAIL和/或GOOGLE DRAWINGS。构想其它web应用,包括社交网络应用、照片应用、通信应用(例如,IP语音和/或即时消息收发)等。 [0033] 在一些实施例中,协作平台114是web应用116的中央主机。例如,客户机计算机 102的用户可经由web浏览器108来访问协作平台114以便利用一个或多个web应用116来创建、编辑和/或查看内容。在一些实施例中,协作平台114提供协作服务,包括但不限于会议、即时消息收发、电子邮件、日历和/或协作工作空间。例如,协作工作空间可由多个用户用来经由web应用116对内容创建或编辑进行协作。 [0034] 在一些实施例中,协作平台114还提供用户可用来保存经由web应用116创建的内容以供稍后查看或编辑的存储解决方案。协作平台114可另选地或另外地被配置成接收在客户机计算机102上本地地创建的内容以便存储在协作平台114。被上传至协作平台114的内容或通过web应用116创建或编辑的内容可作为数据118被存储在服务器计算机110处。数据118可由客户机计算机102和/或其它计算机(未示出)来访问。 [0035] 在一些实施例中,协作平台114允许一个或多个用户创建包括一个或多个网页的网站。该网站以及一个或多个网页可被包括在被保存在服务器计算机110上的数据118中,并且可经由web浏览器108通过一个或多个统一资源定位符(“URL”)来访问。该一个或多个网页可包括一个或多个web部件120。web部件120是在协作平台114中的网页的上下文内运行的服务器侧控件。web部件120使客户机计算机102的用户能够直接通过浏览器 108向网页添加功能。例如,通过web部件120,客户机计算机102的用户可通过浏览器108来创建或修改网页的内容、外观和/或行为。 [0036] web部件120可包括作为协作平台114的一部分来提供的默认web部件和/或由客户机计算机102的用户创建的自定义web部件。在一些实施例中,web部件120具体包括演示文稿web部件122,该演示文稿web部件可被添加到网页以便提供在网页中显示演示文稿内容(也被称为“演示文稿束”或“演示文稿组”)的功能。在一些实施例中,演示文稿内容被格式化为由一个或多个演示文稿幻灯片组成的MICROSOFT POWERPOINT演示文稿,这些幻灯片中的每一个都包括诸如文本、图像、视频、超链接、动画、游戏和/或其它交互式或非交互式元素等内容。 [0037] 构想演示文稿内容可由演示文稿web部件122以与就像经由专用的演示文稿web应用或在客户机计算机102上本地地运行的本机应用来显示演示文稿内容那样相同的方式显示。即,可通过演示文稿web部件122来维护诸如幻灯片内的元素的动画和/或幻灯片之间的动画等演示文稿内容。 [0038] 还构想演示文稿web部件122可以与web部件120中的一个或多个其它web部件交互以便向网页提供各种增强的功能。例如,演示文稿web部件122和地图web部件可被显示在同一网页上以使得当用户经由地图web部件选择城市或其它位置时,演示文稿web部件122显示与所选位置相关联的演示文稿内容。由演示文稿web部件122显示的演示文稿内容可以是包括与所选位置相关联的一个或多个演示文稿幻灯片的演示文稿组。或者,由演示文稿web部件122显示的演示文稿内容可以是与演示文稿组中的所选位置相关联的演示文稿幻灯片,该演示文稿组包括关于包括所选位置以及一个或多个附加位置的各种位置的演示文稿幻灯片。构想对演示文稿web部件122以及一个或多个其它web部件的其它使用。 [0039] 除了演示文稿web部件122之外,web部件120还可包括以下web部件中的一个或多个:用于显示和编辑列表数据的列表查看web部件,用于添加格式化文本、表格、超链接和/或图像的内容编辑器web部件,用于连接到并过滤显示在另一web部件中的一列数据的表单web部件,用于添加图片或图形并调整(例如,对齐、背景色等)该图片或图形的图像web部件,用于显示网页、文件或文件夹的页面查看器web部件,以及用于在显示内容之前显示可扩展标记语言(“XML”)并对该XML应用可扩展样式表语言变换(“XSLT”)的可扩展标记语言web部件。此外,这些web部件120中的任一个都可包括用于调整web部件120的功能的预设和/或自定义设置。 [0040] 在一些实施例中,协作平台114是可以从华盛顿州雷蒙德市的微软购得的MICROSOFT SHAREPOINT。在其他实施例中,协作平台114是可以从加利福尼亚州山景城的谷歌购得的GOOGLE DOCS。在还有一些其他实施例中,不使用协作平台114,并且使得web部件120可作为用于向网页添加各种内容的独立解决方案来获得。 [0041] 构想对服务器计算机110的访问可由一个或多个认证因素来保护,这些认证因素诸如但不限于所有权因素(例如,ID卡、安全令牌、蜂窝电话等)、知识因素(例如,口令、通行码、个人识别号(“PIN”)、质询响应)和/或天赋因素(例如,指纹、虹膜图案、DNA序列、签名、脸部识别、唯一生物电信号或其它生物测定标识符)。此外,可能需要相同的、替换的或进一步的认证来访问协作平台114、一个或多个web应用116和/或数据118。 [0042] 根据各实施例,客户计算机世界102和/或服务器计算机110是是个人计算机(“PC”),诸如台式、平板、或膝上型计算机系统。客户机计算机102和/或服务器计算机110可包括其他类型的计算系统,包括但不限于:服务器计算机、手持式计算机、上网本计算机、嵌入式计算机系统、个人数字助理、移动电话、智能电话或其他计算设备。 [0043] 应该理解,操作环境100的一些实现包括多个客户端计算机102、多个网络104、和/或多个服务器计算机110。还应理解,多个操作系统106和/或多个web浏览器108可由客户机计算机102使用,而多个操作系统112可由服务器计算机110使用。因此,所示实施例应该被理解为示例性的,并且不应该被解释为以任何方式构成限制。 [0044] 现在转向图2,将详细描述示例性web部件体系结构200的各方面。web部件体系结构200包括演示文稿web部件202(诸如演示文稿web部件122),该演示文稿web部件 202又包括核心组件204以及一个或多个主机设置206。在一些实施例中,主机设置206是与协作平台114相关联的设置。在一些实施例中,创建核心组件204以使其能够被打包为服务器侧呈现(“SSR”)控件。在其它实施例中,创建核心组件204以使其能够被打包为客户机侧呈现(“SSR”)控件。为了解释方便,针对本公开的剩余部分,核心组件204被认为是SSR控件。 [0045] 核心组件204包括外部应用编程接口(“外部API”)208。在一些实施例中,外部API208是对于内部API210的postMessage包装器。具体而言,外部API208可利用postMessage来允许来自被嵌入网页的不同对象的内部API210与外部API208之间的协作信息交换。在一些实施例中,外部API208和内部API210用JavaScript语言来编写。 postMessage是超文本标记语言版本5(“HTML5”)的JavaScript函数。外部API208和内部API210的功能将在下文中更详细地描述。 [0046] 核心组件204还包括被配置成创建内联框架(“iFrame”)214的iFrame构造器 212。在一些实施例中,iFrame构造器212被包括为外部API208的一部分。由iFrame构造器212创建的iFrame214是被配置成包括外部对象的HTML元素。所示iFrame214被配置成包括被体现为查看器216的外部对象。 [0047] 所示iFrame214与同查看器216分开的用户界面218相关联。在一些实施例中,用户界面218由用户(例如,网站开发者)添加以便在查看器216之上提供各种功能。这些功能可提供例如与网页上的其它web部件的交互性。用户界面218可另选地包括允许用户显示和/或操纵被包括在查看器216的幻灯片视图222中的演示文稿内容220的功能。例如,用户界面218可提供用户可用来播放演示文稿内容220的幻灯片演示、停止幻灯片演示、暂停幻灯片演示、选择下一幻灯片、选择前一幻灯片以及查看关于当前可查看的幻灯片的标识信息(例如,Y个幻灯片中的幻灯片X)的按钮或其它交互式元素。演示文稿内容220可源自客户机计算机102、数据118或另一位置。包括用户界面218可以是设计选择并且可由或针对特定开发者自定义设计。 [0048] 构想用户界面218可被临时或永久地从特定视图隐藏。例如,可隐藏用户界面218直到将光标定位在网页中的与用户界面218相关联的区域上,此时显露用户界面218。用户界面218可另选地对所有用户或诸如那些具有受限访问权(例如,针对演示文稿内容220或针对特定网站或其中所包含的页面中的所有内容的只读许可)的特定用户永久地隐藏。 [0049] 查看器216也与客户机设置224和导航功能226相关联。客户机设置224允许用户控制关于组件204的各种功能(如将在下文中更详细地描述的)以及幻灯片视图222的位置。导航功能226可以是以下功能:播放演示文稿内容220的幻灯片演示、停止幻灯片演示、暂停幻灯片演示、选择下一幻灯片、选择前一幻灯片以及查看关于当前可查看的幻灯片的标识信息(例如,Y个幻灯片中的幻灯片X)。 [0050] 客户机设置224和导航功能226由内部API210用来按照内部API210在一个或多个postMessage228中接收到的来自外部API208的请求操纵演示文稿内容。例如,外部API208可接收到使演示文稿内容220前进至下一幻灯片的指令,并且因此外部API208生成包括该指令的postMessage228并将postMessage228发送到内部API210,该内部API210然后调用一个web应用116(即,演示文稿web应用)的使演示文稿内容220前进至下一幻灯片的功能。此处,该功能可以是由演示文稿web应用用来前进至下一幻灯片的特定方法。 此外,与该前进相关联的任何过渡或其它动画可由内部API210通过调用演示文稿web应用所利用的动画库来获取。 [0051] 客户机设置224可以是主机设置206的子集。主机设置206包括例如演示文稿内容220的源(即,指向包括演示文稿内容220的特定文件)、演示文稿内容220的初始大小(例如,高度和宽度)以及导航功能226中所包括的控件。主机设置206中的某一些也可以是客户机设置224。例如,自动前进设置可被包括在主机设置206和客户机设置224中。 [0052] 现在转向图3,将进一步参考图1和2来描述用户可用来选择关于演示文稿内容 220的各种主机设置206的设置用户界面300。如图所示,设置用户界面300包括演示文稿显示部分302、工具栏和标题栏部分304、导航和交互部分306、外观部分308和布局部分 310。应理解,图3所示的所有设置都是示例性主机设置206,其中一些设置也可以是示例性客户机设置224。演示文稿内容220的初始大小、布局设置以及是否显示标题栏/工具栏不是客户机设置224的一部分。 [0053] 演示文稿显示部分302包括用户可用来选择要显示在幻灯片视图222中的演示文稿内容220的演示文稿源选择框312。在一些实施例中,演示文稿源选择框312是用可用演示文稿内容来预先填充的下拉菜单。在一些实施例中,用户能够输入到演示文稿内容220的路径。该路径可以是例如演示文稿内容220的URL位置、演示文稿内容220在服务器计算机110的数据118中的位置、或者演示文稿内容220在客户机计算机102上的位置(例如,以便上传至服务器计算机110)。在所示实施例中,已经选择被命名为“样本.ppt”的演示文稿。应理解,尽管示出了*.ppt文件扩展名,但可基于演示文稿内容220的演示文稿文件格式来使用其它文件扩展名。 [0054] 工具栏和标题栏部分304包括显示标题栏复选框314和显示工具栏复选框316。 显示标题栏复选框314允许用户切换显示/隐藏演示文稿的标题栏。标题栏可包括演示文稿源选择框312中所选择的演示文稿的文件名(具有或没有文件类型扩展)。显示工具栏复选框316允许用户切换显示/隐藏工具栏。在所示实施例中,显示标题栏复选框314未被选中,而显示工具栏复选框316被选中。 [0055] 导航和交互部分306包括导航复选框318、自动前进单选按钮320A、320B以及自动前进时间选择框322。导航复选框318允许用户切换允许/不允许在幻灯片上用来使演示文稿前进的点击、键盘快捷键或其它输入。自动前进单选按钮320A、320B允许用户选择是演示文稿自动前进(即,选择自动前进单选按钮320A)还是遵从演示文稿设置,例如在创建演示文稿期间设置的关于幻灯片的自动前进时序或手动前进的设置(即,选择自动前进单选按钮320B)。自动前进单选按钮320A在被选择时允许用户经由自动前进时间选择框322来指示自动前进之间的时间间隔。示出了两秒的时间间隔,但这绝对不应被认为是限制性的。在一些实施例中,“使用来自文件的默认自动前进设置”复选框被另选地或另外地呈现在设置用户界面300中。当该复选框被选中时,演示文稿内容220使用文件中的任何自动前进设置(例如,像幻灯片演示视图)。当该复选框未被选中时,演示文稿内容220不自动前进并且每一动画都需要点击来在演示文稿内容220中进展(例如,像阅读视图)。 [0056] 外观部分308包括高度单选按钮324A、324B、固定高度选择框326、宽度单选按钮 328A、328B以及固定宽度选择框330。高度单选按钮324A、324B允许用户选择是为演示文稿web部件202设置固定高度还是调整高度以适合所选区域。高度单选按钮324A在被选择时允许用户经由固定高度选择框326来指示演示文稿web部件202的固定高度。示出了“360”个像素的固定高度,但这绝对不应被认为是限制性的。宽度单选按钮328A、328B允许用户选择是为演示文稿web部件202设置固定宽度还是调整宽度以适合所选区域。宽度单选按钮328A在被选择时允许用户经由固定宽度选择框330来指示演示文稿web部件202的固定宽度。示出了“640”个像素的固定宽度,但这绝对不应被认为是限制性的。 [0057] 布局部分310包括隐藏复选框332、区域选择框334以及区域索引选择框336。隐藏复选框332允许用户切换隐藏数据。区域选择框334允许用户选择网页中的他们期望插入演示文稿web部件202的区域。区域可以是例如网页的页眉、页脚或正文;或者可以是网页中的特定栏或行。在所示实施例中,所选区域是网页的中栏。区域索引选择框336允许用户选择所选区域中的区段。如在所示实施例中,这些区段可由整数(例如,“0”)来指示。 在一些实施例中,布局部分310例如由协作平台114来自动填充。 [0058] 设置用户界面300还包括“确定”按钮338、“取消”按钮340和“应用”按钮342。 对“确定”按钮338的选择应用任何新设置并关闭设置用户界面300。对“取消“按钮340的选择在不保存任何新设置的情况下关闭设置用户界面300。对“应用“按钮342的选择应用任何新设置。 [0059] 构想设置用户界面300可以不包括图3所示的全部设置,可包括在图3中未明确地示出的其他设置,或者可包括完全不同于图3所示的设置。 [0060] 现在转向图4,将详细描述用于执行包括演示文稿web部件的网页的方法400的各方面。应该理解,不一定按任何特定次序来呈现此处公开的方法的操作,并且构想了用替换次序来执行部分或全部操作是可能的。为了易于描述和说明,按所示次序来呈现各操作。 可以添加、省略和/或同时执行操作,而不脱离所附权利要求书的范围。 [0061] 还应当理解,所示方法可在任何时间结束且不必完整地执行。这些方法的部分或全部操作和/或基本等效的操作可通过执行计算机存储介质上所包括的计算机可读指令来执行,如在下文中所定义的。如在说明书和权利要求书中使用的术语“计算机可读指令“及其变型,在本文是用来广泛地包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子产品、其组合等等。 [0062] 因此,应该理解,本文所述的逻辑操作被实现为:(1)一系列计算机实现的动作或运行于计算系统上的程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。 该实现是取决于计算系统的性能及其他要求的选择问题。因此,此处描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑及其任何组合来实现。 [0063] 出于图解说明和描述本公开的概念的目的,在此公开的方法被描述为由客户机计算机102和/或服务器计算机110来执行。应该理解,这些实施例是示例性的,并且不应被视为以任何方式进行限制。 [0064] 方法400开始于操作402,其中web浏览器108调用网页。这可通过web浏览器 108在URL输入域中接收网页的URL来完成。该URL可由客户机计算机102的用户手动输入到URL输入域中,在执行应用(例如,本机应用或web应用)时被自动输入到URL输入域中,或者在从另一网页或文档中选择超链接时被输入到URL输入域中。网页包括演示文稿web部件,诸如演示文稿web部件202。 [0065] 方法400从操作402继续至操作404,其中web部件202获取演示文稿文件数据(例如,演示文稿内容220)。演示文稿文件数据的源可例如经由设置用户界面300来在演示文稿源选择框312中设置。在操作406中,web浏览器108然后运行网页,从而导致在操作 408中初始化外部API208。 [0066] 方法400从操作408继续至操作410,其中iFrame构造器212(例如,作为外部API208的一部分)创建iFrame214。方法400然后继续至操作412,其中执行演示文稿web应用以便在iFrame214中显示演示文稿内容220。方法400然后在操作414中结束。 [0067] 现在转到图5,将描述用于高速缓存演示文稿内容220的方法500的各方面。演示文稿内容220可以用具有各种宽高比(例如,4:3、16:9、16:10等)的各种大小(例如,像素尺寸)来创建。此外,iFrame214的大小可以是如由用户指示的任何大小。因此,使得演示文稿内容220适合在iFrame214内可导致演示文稿内容220被拉伸、缩小或以某种其它方式变形;像素化;或由于某种其它原因不适于显示在iFrame214内。例如,原始大小的演示文稿内容220可能已被创建以便经由本机或基于web的演示文稿查看器应用来全尺寸显示并且未被定制成作为iFrame的一部分嵌入网页。方法500允许高速缓存各种大小的演示文稿内容220以使得可将合适的大小插入各种比例的iFrame中。 [0068] 方法500开始并继续至操作502,其中访问演示文稿内容220。响应于访问演示文稿内容220,在操作504中,将演示文稿内容220缩放至固定数量的大小(也被称为“束尺寸“)。尽管构想了任何数量的大小,但出于解释的目的,假定固定数量的大小是三个,即小、中和大。这些固定数量的大小中的每一个的特定尺寸未被描述,并且可基于特定实现的需求来选择。被缩放至固定数量的大小的演示文稿内容220在本文以下内容中被统称为“经缩放的演示文稿内容”。 [0069] 方法500从操作504继续至操作506,其中经缩放的演示文稿内容被高速缓存以用于对演示文稿内容220的将来请求。在操作508中,接收到一个这样的请求,并且在操作 510中,检索合适大小(即,小、中或大束尺寸)的经缩放的演示文稿内容以便插入web部件 202,尤其是插入iFrame214中。在一些实施例中,检索基于目标iFrame(即,iFrame214)的尺寸。在一些实施例中,选择大于目标iFrame的束尺寸,并且然后将其缩小至适合。参考图6示出和描述用于检索合适的束尺寸的方法。 [0070] 方法500从操作510继续至操作512,其中将检索到的经缩放的演示文稿内容插入到web部件202的iFrame214中。然后,方法500行进到操作514,在此处方法500结束。 [0071] 现在转到图6,将描述用于选择演示文稿束尺寸的方法600的各方面。例如根据上述方法500,方法600假定已经为演示文稿内容220定义三个束尺寸(小、中和大),并高速缓存这些束尺寸以用于将来请求。方法600开始并继续至操作602,其中接收将演示文稿内容插入iFrame214的请求。 [0072] 方法600从操作602继续至操作604,其中确定iFrame214的高度和宽度是否小于或等于为中尺寸束定义的最小高度和最小宽度。如果在操作604中确定iFrame214的高度和宽度小于或等于为中尺寸束定义的最小高度和最小宽度,则方法600继续至操作606,其中选择小束尺寸。然后,方法600行进到操作608,在此处方法600结束。 [0073] 然而,如果在操作604中确定iFrame214的高度和宽度不小于或等于为中尺寸束定义的最小高度和最小宽度,则方法600继续至操作610,其中确定iFrame214的高度和宽度是否小于或等于为大尺寸束定义的最小高度和最小宽度。如果在操作610中确定iFrame214的高度和宽度小于或等于为大尺寸束定义的最小高度和最小宽度,则方法600继续至操作612,其中选择中束尺寸。然后,方法600行进到操作608,在此处方法600结束。 [0074] 如果在操作610中确定iFrame214的高度和宽度不小于或等于为中尺寸束定义的最小高度和最小宽度,则方法600继续至操作614,其中选择大束尺寸。然后,方法600行进到操作608,在此处方法600结束。 [0075] 应理解,判定操作604、610可分开考虑高度和宽度分量以使得如果iFrame214的高度或宽度分别小于或等于为特定尺寸束定义的最小高度或宽度,则选择较小的束尺寸(即,对于操作604选择小束尺寸,而对于操作610选择中束尺寸)。还应理解,可定义比三个束尺寸选项更多或更少的选项,并因此可使用如同操作604、610的更多或更少的操作来确定iFrame214的高度和/或宽度是否小于或等于为特定束尺寸定义的最小高度和/或最小宽度。 [0076] 现在转向图7,将进一步参考图2描述用于在web部件202中调用web应用的实现的方法700的各方面。方法700开始并继续至操作702,其中在外部API208处接收指令。 该指令可以是例如以下指令:前进至下一幻灯片、返回到前一幻灯片、结束演示文稿或以其它方式操纵web部件202的iFrame214中所显示的演示文稿内容220。 [0077] 方法700从操作702继续至操作704,其中外部API208生成包括在操作702中接收到的指令的postMessage。方法700然后继续至操作706,其中外部API208将postMessage发到内部API210。方法700从操作706继续至操作708,其中内部API210调用演示文稿web应用的实现来执行postMessage中所包括的指令。然后,方法700行进到操作710,在此处方法700结束。 [0078] 应理解,外部API208不限于只将指令发送到内部API210并进而发送到查看器 216。例如,如果用户导航查看器216,则外部API208可将消息发送到正在使用外部API208的应用。这在下文中参考图8来示出和描述。 [0079] 现在转向图8,将进一步参考图2描述用于在外部API208和正在调用外部API208的应用之间进行通信的方法800的各方面。方法800开始于操作802,其中导航输入由内部API210接收并被提供给外部API208。在操作804,外部API208进而将包括导航输入的消息发送到调用外部API208的应用。方法800然后继续至操作806,其中应用然后响应于在消息中接收到的导航输入来执行一个或多个功能。然后,方法800继续到操作808,在此处方法800结束。 [0080] 在一些实施例中,应用是地图应用,且导航输入是幻灯片前进输入,从而当应用接收到导航输入时,作为响应该应用通过显示与查看器216中所显示的幻灯片一致的位置来操纵地图。构想其它用例。 [0081] 图9示出了能够执行此处描述的用于利用演示文稿web部件来在网页中嵌入演示文稿内容的软件组件的设备的示例性计算机体系结构900。由此,图9所示的计算机体系结构900示出服务器计算机、移动电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、和/或膝上型计算机的体系结构。计算机体系结构900可用于执行本文所呈现的软件组件的任何方面。 [0082] 图9所示的计算机体系结构900包括中央处理单元902(“CPU”)、包括随机存取存储器904(“RAM”)和只读存储器(“ROM”)906的系统存储器908、以及将存储器904耦合至CPU902的系统总线910。基本输入/输出系统被存储在ROM908中,该系统包含帮助诸如在启动期间计算机体系结构900中的元件之间传递信息的基本例程。计算机体系结构900还包括大容量存储设备912,用于存储操作系统106、112、协作平台114、web应用116、数据 118、web部件120、演示文稿web部件122和web浏览器108。 [0083] 大容量存储设备912通过连接至总线910的大容量存储控制器(未示出)连接至CPU902。大容量存储设备912及其相关联的计算机可读介质为计算机体系结构900提供非易失性存储。虽然对此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计算机体系结构900访问的任何可用计算机存储介质或通信介质。 [0084] 通信介质包括诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包含任何传递介质。术语“已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被更改或设定的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述的任意组合也应包含在计算机可读介质的范围内。 [0085] 作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于,RAM、ROM、EPROM、EEPROM、闪存或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、蓝光(BLU-RAY)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机体系结构900访问的任何其他介质。为了权利要求书的目的,短语“计算机存储介质”及其变型不包括波、信号和/或其他瞬态和/或无形通信介质本身。 [0086] 根据各实施例,计算机体系结构900可以使用通过诸如网络104之类的网络到远程计算机的逻辑连接来在联网环境中操作。计算机体系结构900可以通过连接至总线910的网络接口单元916来连接到网络104。应当明白,网络接口单元916还可以被用来连接到其它类型的网络和远程计算机系统,例如,被配置成主存诸如演示文稿内容等内容的远程计算机系统。计算机体系结构900还可包括用于接收和处理来自多个其他设备的输入的输入/输出控制器918,这些设备包括键盘、鼠标、或电子指示笔(在图9中未示出)。类似地,输入/输出控制器918可提供到显示屏、打印机、或者其他类型的输出设备(在图9中也未示出)的输出。 [0087] 应当理解,本文所描述的软件组件在被加载到CPU902中并被执行时可以将CPU902和总体计算机体系结构900从通用计算系统变换成为方便本文所提出的功能而定制的专用计算系统。CPU902可以用任意数量的晶体管或其他分立的电路元件(它们可以分别地或共同地呈现任意数量的状态)构建。更具体地,CPU902可以响应于包含在本文所公开的软件模块中的可执行指令来作为有限状态机进行操作。这些计算机可执行指令可以通过指定CPU902如何在各状态之间转换来变换CPU902,由此变换了构成CPU902的晶体管或其它分立硬件元件。 [0088] 对本文所提出的软件模块的编码也可变换本文所提出的计算机可读介质的物理结构。在本说明书的不同实现中,物理结构的具体转换可取决于各种因素。这样的因素的示例可以包括,但不仅限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存储器还是辅存储器等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文所公开的软件可以通过变换半导体存储器的物理状态而在计算机可读介质上编码。例如,软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可变换这些组件的物理状态以在其上存储数据。 [0089] 作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术来实现。在这些实现中,本文所提出的软件可以在磁或光介质中编码了软件时变换所述磁或光介质的物理状态。这些转换可包括更改给定磁性介质内的特定位置的磁性特征。这些变换还可以包括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没有偏离本说明书的范围和精神的情况下,物理介质的其他转换也是可以的,前面提供的示例只是为了便于此讨论。 [0090] 鉴于以上内容,应当理解,在计算机体系结构900中发生许多类型的物理变换以便存储并执行本文所提出的软件组件。还应当理解,计算机体系结构900可包括其它类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员已知的其它类型的计算设备。还可构想计算机体系结构900可以不包括图9所示的全部组件、可包括在图9中未明确地示出的其他组件、或者可利用完全不同于图9所示的体系结构。 [0091] 基于上述内容,应当明白,已经在此处公开了用于利用演示文稿web部件来在网页中嵌入演示文稿内容的技术。虽然用计算机结构特征、方法和变换动作、特定计算机器、以及计算机可读介质专用的语言描述了本文中所描述的主题,但是应当理解,所附权利要求书中所定义的本发明不必限于本文中所描述的具体特征、动作、或介质。相反,这些具体特征、动作以及介质是作为实现权利要求的示例形式而公开的。 [0092] 以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所描述的主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用且不背离所附权利要求书中所阐述的本发明的真正精神和范围。