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 模式实现本身,但如果是这种情况,现在不太可能修复。
我正在尝试通过 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 模式实现本身,但如果是这种情况,现在不太可能修复。