Google 应用程序脚本,JavaScript FileReader 不是函数

Google App Script, JavaScript FileReader is not a function

我正在尝试通过 google 应用程序脚本实现图像预览功能。

这是我的代码:

code.gs

function doGet(e) {
  return HtmlService.createTemplateFromFile('form')
    .evaluate() // evaluate MUST come before setting the NATIVE mode
    .setTitle('Details')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

form.html

<!DOCTYPE html>
<html>
  <head>
    <script>
var loadFile = function(event) {
    var reader = new FileReader();
    reader.onload = function(){
      var output = document.getElementById('preview');
      output.src = reader.result;
    };
    reader.readAsDataURL(event.target.files[0]);
  };
    </script>
  </head>
  <body>
    <input type='file' id="imgInp" onchange="loadFile(event)" />
    <img id="preview" src="#" alt="your image" />
  </body>
</html>

当我部署此代码时,出现以下错误:

在 Safari 中:undefined is not a constructor (evaluating 'new FileReader()')

在Chrome中: Uncaught TypeError: FileReader is not a function

我怀疑FileReader可能不被Google App Script解释器理解(?),但我发现并且它似乎存在并被使用

我尝试使用 IFRAME 模式而不是 NATIVE,它似乎有效。虽然很奇怪。我想让它通过 NATIVE

NATIVE 模式已被弃用,明年任何显式调用它的脚本都将默认为 IFRAME 模式。因此,我建议您使用 IFRAME,因为它适合您。

https://developers.google.com/apps-script/sunset

由于代码似乎在带有 "use strict" 标记的常规 javascript 中运行良好,我猜问题出在 NATIVE 模式实现本身,但如果是这种情况,现在不太可能修复。