边栏Javascript无法在创建补充工具栏的库中找到函数

时间:2017-07-07 01:17:06

标签: google-apps-script google-sheets

我有一个附加到Google文档的侧边栏。我正在使用侧边栏来详细了解Google文档的结构。我一直在使用按钮单击来帮助我在文档本身上找到Body Child Text。在工作时,这只是将Body Child Text移动到Document中的视图中,并以黄色突出显示一秒钟。

这是html和javascript:

<input id="txtfind0" type="button" value="Click to Find Text" onClick="hlBodyChildText(0)" />
function hlBodyChildText(idx) 
{
    google.script.run.withSuccessHandler(llBodyChildText).highLightBodyChildText(idx);
}

function llBodyChildText(idx) 
{
    google.script.run.lowLightBodyChildText(idx);
}

这是Google Apps脚本:

function highLightBodyChildText(idx)
{
  var doc=DocumentApp.getActiveDocument();
  var child=doc.getBody().getChild(idx);
  var position=doc.newPosition(child, 0);
  doc.setCursor(position);
  child.asText().editAsText().setBackgroundColor('#ffff00');
  return idx;
}
function lowLightBodyChildText(idx)
{
  Utilities.sleep(1000);
  DocumentApp.getActiveDocument().getBody().getChild(idx).asText().editAsText().setBackgroundColor('#ffffff');
}

这是令人满意的,直到我决定将它全部放入库中,以便我可以轻松地将它附加到任何文档。但是,似乎google.script.run调用要求函数必须包含在文档的脚本编辑器中。他们似乎无法在图书馆中找到这些功能。

我试过这种方法:

function hlBodyChildText(idx) 
    {
        google.script.run.withSuccessHandler(llBodyChildText).myDocUtilities.highLightBodyChildText(idx);
    }

但这只会导致错误'找不到未定义的highLightBodyChildText(idx)。

所以当我决定将这些函数直接从我的库中复制到Code.gs文件中时,它立即起作用。

所以问题是:是否有办法将这些函数公开给google.script.run调用,而无需将所有这些文件复制到每个文档中。

0 个答案:

没有答案