如何使用Google Apps Script获取当前文档的活跃URL?
问题诊断与修正方案
- 核心错误1:混淆了Google Apps Script(GAS)服务端代码与客户端HTML的JS代码运行环境,
DocumentApp是仅能在GAS服务端运行的类,不能直接写在前端HTML的<script>标签里,浏览器无法识别这个API。 - 核心错误2:分享到Classroom的按钮缺少动态填充的文档URL参数。
第一步:编写服务端GAS代码(Code.gs文件)
在你的Apps Script项目里新建/打开Code.gs文件,写入如下代码:
// 打开文档时加载自定义菜单,方便触发分享界面 function onOpen() { DocumentApp.getUi() .createMenu('分享工具') .addItem('打开Classroom分享面板', 'openSharePanel') .addToUi(); } // 渲染并打开分享用的HTML侧边栏 function openSharePanel() { // 此处的Page对应你自己创建的HTML文件名 const html = HtmlService.createTemplateFromFile('Page') const docUrl = DocumentApp.getActiveDocument().getUrl(); // 把服务端获取的文档URL传递给HTML模板 html.fileLink = docUrl; const renderedHtml = html.evaluate().setTitle('分享到Classroom'); DocumentApp.getUi().showSidebar(renderedHtml); }
第二步:修正HTML文件代码(命名为Page.html即可)
调整后的代码如下:
<!DOCTYPE html> <html> <head> <base target="_top"> </head> <script src="https://apis.google.com/js/platform.js" async defer></script> <body> <!-- 用模板语法插入服务端传递过来的文档URL --> <g:sharetoclassroom url="<?= fileLink ?>" size="32"></g:sharetoclassroom> </body> </html>
第三步:测试使用
- 保存所有代码后刷新你的Google文档,等待几秒后顶部菜单栏会出现分享工具菜单
- 点击菜单里的打开Classroom分享面板,侧边栏会加载出可直接点击的Classroom分享按钮,点击即可完成当前文档的分享操作
内容的提问来源于stack exchange,提问作者Davis Apas
相关产品推荐
相关产品推荐

