所选内容是指在打开的演示页面中当前所选的任何内容,例如突出显示的文本范围或表格。本指南介绍了如何使用 Apps 脚本获取和设置有效演示中的所选内容。
所选内容是脚本开始时状态的快照。如果用户在脚本运行时点击并更改了选择,这些更改不会反映出来。
选择和选择类型
您可以使用 Selection 类读取所选内容。该类有多种方法可用于根据所选对象的类型获取所选对象。
SelectionType 枚举表示所选对象的具体类型。例如,如果用户在某个形状中选择了一些文字,则选择类型将为 TEXT。在这种情况下,您可以使用 selection.getTextRange()
方法检索所选文本范围。
您还可以检索包含所选内容的对象;继续上面的示例,您可以使用 selection.getPageElementRange().getPageElements()[0]
检索包含所选文本的形状。同样,包含封闭形状的页面是当前活跃页面;如需检索该页面,请使用 selection.getCurrentPage()
。
阅读所选内容
如需读取所选内容,请使用 Presentation.getSelection() 方法,如以下示例所示:
朗读当前网页
如需检索用户当前正在查看的页面,请使用 getSelection() 和 getCurrentPage() 方法,如下所示:
请注意,当前网页可以是以下任一类型:
当前页面可以选择一个或多个对象,SelectionType 决定了选择的类型。
根据选择类型读取所选内容
以下示例展示了如何使用选择类型以适合相应类型的方式读取当前选择。
朗读所选文字
您可以使用 Selection.getTextRange() 方法读取所选文本。 文本选择有两种类型:
- 范围选择:如果某个形状包含文本“Hello”,并且选择了“He”,则返回的范围具有 startIndex=0 和 endIndex=2。
- 光标选择:如果某个形状包含文本“Hello”,并且光标位于“H”之后(“H|ello”),则返回的范围是空范围,其中 startIndex=1 且 endIndex=1。
修改所选内容
脚本可以修改用户的选择。 脚本对演示文稿所做的任何选择更改都会在脚本执行期间反映在后续的选择操作中。
只有在脚本执行完毕后或调用 Presentation.saveAndClose()
时,用户的浏览器才会反映出选择更改。
选择当前页面
通过调用 selectAsCurrentPage() 方法,可以选择有效演示文稿中的某个页面作为当前页面。此方法会移除任何之前的页面元素、页面或文本选择。因此,在当前页面上使用此方法可取消选择页面上的任何当前选择。例如:
选择网页元素
如需选择网页中的某个网页元素,请使用 PageElement.select() 方法。 此操作还会取消选择之前选择的所有网页元素。
例如:
选择多个网页元素
如需将其他网页元素附加到所选内容中,请使用 PageElement.select(false) 方法。所有网页元素都必须位于当前网页中。
转换所选内容
脚本执行的编辑操作可以转换当前所选内容,从而使所选内容因编辑而发生变化。 例如:
- 假设您选择了两个形状 A 和 B。
- 接下来,脚本会移除形状 A。
- 这样一来,系统会根据编辑操作转换选择内容,以便仅选择形状 B。
以下示例展示了如何通过操纵所选网页元素来转换选择。
选择文字
可以使用 TextRange.select() 方法选择形状或表格单元格中包含的文本。如果文本包含在形状中,则该形状也会被选中。 如果文本包含在表格单元格中,则该表格单元格及其封闭表格都会被选中。
这还会将父网页设置为当前网页。
形状中的范围选择
以下示例展示了如何在形状中包含的文本内进行范围选择。
以形状选择光标
以下示例展示了如何在形状中包含的文本内进行光标选择。
表格单元格中的范围选择
以下示例展示了如何在表格单元格中包含的文本内进行范围选择。
TableCell 中的光标选择
以下示例展示了如何在表格单元格中包含的文本内进行光标选择。
通过文本编辑转换所选内容
以下示例展示了如何通过修改所选文本来转换选择内容。
正在取消选择
没有明确的方法可用于取消选择文字或页面元素。不过,您可以使用 Page.selectAsCurrentPage()
或 pageElement.select()
方法实现此结果。
选择当前页面
以下示例展示了如何通过将某个页面设置为当前页面来取消选择该页面上的所有当前选择。
选择网页元素
以下示例展示了如何通过选择一个页面元素来取消选择页面上的所有当前选择,从而从选择中移除所有其他项。