javascript - 如何向未注册用户显示警报窗口或提示

标签 javascript google-apps-script google-sheets popup

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

我希望通过 Browser 类可以通过两种方式与用户交互。一种是在弹出窗口中显示警报,以警告用户不要编辑字段。这是通过 Browser.msgBox 或 ̀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(); 
    }

最佳答案

简短回答

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

说明

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

注释:

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

更多详情请参阅:

解决方法

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

  • 使用 Apps 脚本创建网络应用并在其中嵌入电子表格
  • 使用其他平台创建网络应用并嵌入电子表格

关于javascript - 如何向未注册用户显示警报窗口或提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52746398/

相关文章:

JavaScript 帖子表单

google-apps-script - 可以使用电子表格中的数据自动填写和提交 Google 表单吗?

google-sheets - Google Sheets - ArrayFormula 计算与先前单元格的差异

javascript - 获取范围内的 x 单元格谷歌表格应用程序脚本

google-sheets - 指定稀疏范围

javascript - 将变量 'left' 传递给 jQuery animate()

javascript - 从 javascript 数组中删除项目 - 可能使用 JavaScript 的删除功能?

javascript - 工作表未定义

javascript - 鼠标悬停在滚动条上时如何显示javascript工具提示?

javascript - 如何 onFormSubmit(),两个独立的谷歌源电子表格?