如何在Google Doc中实现点击YouTube链接弹窗播放视频?
在Google Doc中实现YouTube链接弹窗播放功能
我刚好解决过类似的需求——让Google Doc里的YouTube链接能弹窗播放,而不是跳转到浏览器标签页。核心思路是用Google Apps Script添加自定义功能,下面是具体实现步骤:
步骤1:打开脚本编辑器
打开你的Google Doc,点击顶部菜单栏的「工具」→「脚本编辑器」,这会打开Google Apps Script的在线编辑器界面。
步骤2:替换脚本代码
删除编辑器里的默认myFunction()代码,粘贴下面的完整脚本:
// 打开文档时创建自定义菜单 function onOpen() { const ui = DocumentApp.getUi(); ui.createMenu('YouTube工具') .addItem('弹窗播放选中的YouTube视频', 'playYouTubePopup') .addToUi(); } // 核心功能:解析链接并弹窗播放 function playYouTubePopup() { const doc = DocumentApp.getActiveDocument(); const selection = doc.getSelection(); // 检查是否有选中内容 if (!selection) { DocumentApp.getUi().alert('请先选中一个YouTube链接!'); return; } const elements = selection.getRangeElements(); const firstElement = elements[0].getElement(); // 检查选中的是否是带链接的文本 if (firstElement.getType() !== DocumentApp.ElementType.TEXT) { DocumentApp.getUi().alert('请选中一个带YouTube链接的文本!'); return; } const textElement = firstElement.asText(); const link = textElement.getLinkUrl(); if (!link || !isYouTubeLink(link)) { DocumentApp.getUi().alert('选中的链接不是有效的YouTube链接!'); return; } // 提取YouTube视频ID const videoId = extractYouTubeId(link); if (!videoId) { DocumentApp.getUi().alert('无法解析YouTube视频ID,请检查链接格式!'); return; } // 创建弹窗HTML const html = HtmlService.createHtmlOutput(` <!DOCTYPE html> <html> <body style="margin:0; padding:0;"> <iframe width="800" height="450" src="https://www.youtube.com/embed/${videoId}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <div style="text-align:center; margin-top:10px;"> <button onclick="google.script.host.close()" style="padding:8px 16px; cursor:pointer;">关闭弹窗</button> </div> </body> </html> `).setWidth(820).setHeight(500); // 显示弹窗 DocumentApp.getUi().showModalDialog(html, '播放YouTube视频'); } // 辅助函数:判断是否为YouTube链接 function isYouTubeLink(url) { return url.includes('youtube.com/watch') || url.includes('youtu.be/'); } // 辅助函数:提取YouTube视频ID function extractYouTubeId(url) { let videoId = ''; if (url.includes('youtube.com/watch')) { const params = new URLSearchParams(new URL(url).search); videoId = params.get('v'); } else if (url.includes('youtu.be/')) { videoId = url.split('youtu.be/')[1].split('?')[0]; } return videoId; }
步骤3:保存并授权脚本
- 点击编辑器顶部的「保存」按钮,给你的脚本起个名字(比如「YouTubePopupPlayer」)。
- 点击运行按钮(▶️),第一次运行会弹出权限请求窗口,按照提示授权即可(这是你自己编写的脚本,安全可靠)。
步骤4:在Google Doc中使用
- 回到你的Google Doc页面,刷新一下,顶部菜单栏会出现新的「YouTube工具」选项。
- 选中文档里的任意YouTube链接文本,点击「YouTube工具」→「弹窗播放选中的YouTube视频」,就能看到弹窗加载并播放视频了!
额外说明
- 脚本支持两种常见的YouTube链接格式:
https://www.youtube.com/watch?v=XXX和https://youtu.be/XXX。 - 弹窗的宽高可以通过修改脚本里的
setWidth(820)和setHeight(500)以及iframe的宽高来调整。 - 如果想更贴近「点击链接直接弹窗」的体验,由于Google Doc原生不支持修改链接的默认行为,目前只能通过自定义菜单触发,但这已经是最接近需求的可行方案了。
内容的提问来源于stack exchange,提问作者kazi
相关产品推荐
相关产品推荐

