首页 > 解决方案 > 如何向未注册用户显示警报窗口或提示

问题描述

我正在设置一个电子表格,其用户不一定有 Google 帐户,也不需要登录。

我想以 Browser课堂上可能的两种方式与用户互动。一种是在弹出窗口中显示警报,以警告用户不要编辑字段。这是用Browser.msgBoxor ̀ 完成的ui.alert。第二件事是在窗口中请求输入,这可以很好地完成Browser.inputBox()

虽然当我以所有者身份登录时我的代码工作正常,但在由未注册用户编辑时它是无用的。

我可以让这些功能为未注册用户工作吗?如果可以,怎么做?

否则,是否有解决方法来实现类似的功能?

这是我所做的一个最小示例:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSheet();   
  var eventRange = event.range;   
  var eventRow = eventRange.getRow();
  var eventCol = eventRange.getColumn();
  if(eventCol == 1){
    protectDateField(ss, eventRow, eventCol)
    }
  }

  function protectDateField(ss, eventRow, eventCol){
    var ui = SpreadsheetApp.getUi();
    ui.alert("Do Not Edit This Field!");
    ss.getRange(eventRow,eventCol).clearContent(); 
    }

标签: javascriptgoogle-apps-scriptgoogle-sheetspopup

解决方案


简短的回答

您想做的事情在 Google 表格上是不可能的。

解释

  • 要运行绑定到电子表格的脚本,用户应该是该电子表格的编辑器。
  • 简单触发器无法访问需要授权才能运行的服务。
  • 当触发器由匿名用户触发时,会应用一些额外的限制。

笔记:

  1. 每种方法所需的授权范围都包含在每种方法的文档部分中。
  2. 匿名用户无法授权由可安装触发器运行的脚本,因为授权过程需要一个 usar 帐户来记录相应的授权。

有关详细信息,请参阅:

解决方法

仅使用 Google 表格无法实现所需的功能,但您可以

  • 使用 Apps 脚本创建 Web 应用程序并在其中嵌入电子表格
  • 使用另一个平台创建一个 Web 应用程序并在其中嵌入电子表格

推荐阅读