Debugging 如何知道“按操作执行”菜单和“调试”菜单之间的区别?

Debugging 如何知道“按操作执行”菜单和“调试”菜单之间的区别?,debugging,google-apps-script,google-sheets,Debugging,Google Apps Script,Google Sheets,我有一些自定义菜单谷歌电子表格 我的脚本如何知道何时调用它,因为用户在自定义菜单上使用clic,何时由用户使用脚本编辑器执行调试 我如何知道这两种情况之间的区别 我尝试过这样的东西: SpreadsheetApp.getUi() === undefined 但我想试试别的 主要目标是让具有编辑器权限的用户可以使用自定义菜单,但当他们希望使用脚本编辑器调试my Lybrary的代码时,请阻止此操作 我正在研究一个库,我想避免用户阅读库的代码。我知道插件可以在这方面提供帮助。但我想和图书馆合作

我有一些自定义菜单谷歌电子表格

我的脚本如何知道何时调用它,因为用户在自定义菜单上使用clic,何时由用户使用脚本编辑器执行调试

我如何知道这两种情况之间的区别

我尝试过这样的东西:

SpreadsheetApp.getUi() === undefined
但我想试试别的

主要目标是让具有编辑器权限的用户可以使用自定义菜单,但当他们希望使用脚本编辑器调试my Lybrary的代码时,请阻止此操作

我正在研究一个库,我想避免用户阅读库的代码。我知道插件可以在这方面提供帮助。但我想和图书馆合作


最终答案

没有办法找到不同之处。 对于主要目标,我们需要编码插件

菜单项不能将参数传递给函数,但常规函数可以将参数传递给另一个函数,因此您可以将一些值传递给该函数,如果该值存在,则该值来自另一个函数,而不是菜单。实际上,您的脚本无法区分这两者之间的区别。您可以在菜单和实际函数之间设置一个中间函数。但是脚本编辑器中的某些人会读到这一点,然后说,哦,我将运行中间函数,就像我从菜单中运行函数一样,@puentesdiaz永远不会知道区别,而您也无法分辨区别。不管怎样,你的问题是什么?您希望利用这些知识实现什么?主要思想是避免用户可以调试代码,但可以使用菜单项。菜单项不能将参数传递给函数,但常规函数可以将参数传递给另一个函数,因此您可以将一些值传递给函数,如果这个值存在,那么它来自另一个函数,而不是菜单。事实上,你的脚本无法区分这两者之间的区别。您可以在菜单和实际函数之间设置一个中间函数。但是脚本编辑器中的某些人会读到这一点,然后说,哦,我将运行中间函数,就像我从菜单中运行函数一样,@puentesdiaz永远不会知道区别,而您也无法分辨区别。不管怎样,你的问题是什么?您希望利用这些知识实现什么?主要思想是避免用户可以调试代码,但可以使用菜单