Google App Script,JavaScript FileReader不是一个功能

时间:2015-11-19 06:02:45

标签: javascript google-apps-script filereader

我试图通过谷歌应用程序脚本执行图像预览功能。

这是我的代码:

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,但我发现this SO question它似乎存在并被使用。

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

使其发挥作用

1 个答案:

答案 0 :(得分:2)

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

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

由于代码似乎在带有"use strict"标记的常规javascript中工作正常,我猜问题是NATIVE模式实现本身,但如果是这样的话,现在不太可能修复。