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

如何实现Google Doc光标所在行文本链接到同名新建文档

功能实现需求

使用场景

  • 编辑Google Doc(下称原文档)时,需要直接在文档内创建指向尚未存在的全新Google Doc的链接
  • 新建的Google Doc自动以光标所在行的文本命名:比如光标所在行文本为「Cherry pie」,运行脚本后会自动创建名为「Cherry pie」的新文档,同时给原文档里该行的「Cherry pie」文本加上指向新文档的超链接

现有脚本基础

目前已写好的基础脚本已经可以实现:在原文档运行时自动获取光标所在行的文本内容,在原文档所属文件夹下创建同名新文档。比如光标所在行文本为「Cheese pizza」时,脚本会自动创建名为「Cheese pizza」的新文档,但还没实现给原文档光标所在行文本绑定新文档超链接的功能,现有代码如下:

function onOpen(e) {
  DocumentApp.getUi().createMenu('NewDoc')
    .addItem('Create', 'newDocWithSentense')
    .addToUi();
}

function newDocWithSentense() {
  const doc = DocumentApp.getActiveDocument();
  const cursor = doc.getCursor();
  const surroundings = cursor.getSurroundingText().getText();

  const currentFileFolder = DriveApp.getFileById(doc.getId()).getParents().next()
  const newDoc = DocumentApp.create(surroundings).getId()
  DriveApp.getFileById(newDoc).moveTo(currentFileFolder)
}

补全后可用代码

在原有脚本基础上补充超链接插入逻辑即可,修改后的完整代码直接替换原有脚本就能用:

function onOpen(e) {
  DocumentApp.getUi().createMenu('NewDoc')
    .addItem('Create', 'newDocWithSentense')
    .addToUi();
}

function newDocWithSentense() {
  const doc = DocumentApp.getActiveDocument();
  const cursor = doc.getCursor();
  // 获取光标所在行的文本元素和内容
  const lineTextEl = cursor.getSurroundingText();
  const lineContent = lineTextEl.getText();

  // 原有新建文档、移动到原文档同文件夹的逻辑
  const currentFolder = DriveApp.getFileById(doc.getId()).getParents().next();
  const newDoc = DocumentApp.create(lineContent);
  const newDocUrl = newDoc.getUrl();
  DriveApp.getFileById(newDoc.getId()).moveTo(currentFolder);

  // 给当前行整段文本绑定新文档的超链接
  lineTextEl.setLinkUrl(0, lineContent.length - 1, newDocUrl);
}

使用提示:脚本保存后重新打开Google Doc,会在顶部菜单栏看到名为「NewDoc」的自定义菜单,把光标放到目标行,点击菜单里的「Create」就能一键完成新建文档+加超链接的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:45:58