You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Google Docs中选中的文本/图片添加书签?

实现Google Docs选中内容(文本/图片)添加书签功能

要实现和Google Docs「插入>书签」一致的功能,针对选中的文本或图片添加书签,可通过Google Apps Script的addBookmark()方法结合选中对象处理,具体代码和逻辑如下:

核心实现代码

function addBookmarkToSelection() {
  const doc = DocumentApp.getActiveDocument();
  const selection = doc.getSelection();
  
  if (!selection) {
    DocumentApp.getUi().alert("请先选中要添加书签的文本或图片");
    return;
  }

  const ranges = selection.getRangeElements();
  ranges.forEach(rangeElement => {
    let bookmark;
    // 处理部分选中的文本
    if (rangeElement.isPartial()) {
      const textElement = rangeElement.getElement().asText();
      const startPosition = doc.newPosition(textElement, rangeElement.getStartOffset());
      bookmark = doc.addBookmark(startPosition);
    } else {
      const element = rangeElement.getElement();
      // 处理选中的图片
      if (element.getType() === DocumentApp.ElementType.INLINE_IMAGE) {
        bookmark = doc.addBookmark(element);
      } 
      // 处理完整选中的段落等元素
      else {
        const startPosition = doc.newPosition(element, 0);
        bookmark = doc.addBookmark(startPosition);
      }
    }
    // 可自定义书签名称(可选)
    bookmark.setName("自定义书签");
  });
}

代码说明

  • 获取选中对象:通过doc.getSelection()获取用户当前的选中范围,若未选中内容则弹出提示。
  • 处理部分文本选中:当选中部分文本时,创建文本起始位置的Position对象,以此为参数添加书签,和原生功能一致标记在选中文本的起始处。
  • 处理图片选中:直接将选中的INLINE_IMAGE元素传入addBookmark(),书签会关联到该图片。
  • 处理完整元素选中:若选中整个段落等元素,在元素起始位置添加书签。
  • 自定义书签名称:通过bookmark.setName()可给书签设置易识别的名称。

内容的提问来源于stack exchange,提问作者Pablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:15:37