通过链接触发 Google Doc 中的脚本

问题描述 投票:0回答:1

我在 Google 文档中有一个当前脚本,它在文档的特定部分下方添加了一个带有可折叠列表的标题(在无页设置中)。

我正在寻找能够从文档中触发脚本的用户。我已经能够在 Google Spreadsheets 中使用链接和绘图(并使用自定义菜单,但在本例中不太理想)实现此目的,但无法在 Google Docs 中实现相同的功能。

理想情况下,用户单击链接,这将触发添加以下内容的脚本:

Example of the text script should input

这是我到目前为止的脚本:

function insertText() { var header = "Enter_Item_Title_Here" var bulletOneHeader = "Agenda Item Owner(s): ___________" var bulletTwoHeader = "Discussant: ___________" var bulletThreeHeader = "Discussion Date: ___________" var bulletFourHeader = "External follow up: ___________" var bulletFiveHeader = "Notes: ___________" var bulletSixHeader = "Action Items: ___________" var cursor = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody(); var pr = cursor.findText("New Items:").getElement().getParent(); var i = cursor.getChildIndex(pr) + 1; cursor.insertParagraph(i, header).setHeading(DocumentApp.ParagraphHeading.HEADING3); cursor.insertListItem(i + 1, bulletOneHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); cursor.insertListItem(i + 2, bulletTwoHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); cursor.insertListItem(i + 3, bulletThreeHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); cursor.insertListItem(i + 4, bulletFourHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); cursor.insertListItem(i + 5, bulletFiveHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); cursor.insertListItem(i + 6, bulletSixHeader).setGlyphType(DocumentApp.GlyphType.BULLET).setAttributes({ [DocumentApp.Attribute.BOLD]: true }); }
这里是

一个示例谷歌文档,其中包括我迄今为止拥有的脚本。

我一直在研究和解决

这个现有问题也是这个问题,但一直无法弄清楚。

javascript google-docs
1个回答
0
投票
目标是

to trigger the script from within the document

 使用 
a link

如果

a custom menu

less ideal in this instance
,这是一个使用 
Web Apps
 的示例脚本,它应该执行您想要的操作:

Template Text.gs

function doGet() { return HtmlService.createHtmlOutputFromFile("Untitled"); }

Untitled.html

<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <p>You may now close this page.</p> </body> <script> function myFunction() { google.script.run.insertText(); } window.onload = function() { myFunction(); }; </script> </html>
将这些代码添加到您的 

Template Text.gs

Untitled.html
 后,选择 
Deploy
 > 
New deployment
 > 
Next to "Select type," click Enable deployment types settings
 > 
Enter the information about your web app in the fields under "Deployment configuration."
 > 
Deploy
 获取可嵌入到 
myLink
 的链接。

注意:这只是一个基本示例。正如我在评论中提到的,这

wouldn't be as straightforward as using a custom menu

 因为用户在 
click
 Web 应用程序的 
link
 后必须手动关闭选项卡。

© www.soinside.com 2019 - 2024. All rights reserved.