You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script运行字符串分割代码时出现document is undefined错误

解决Google Apps Script里document is undefined的报错

报错原因

Google Apps Script运行在Google的服务器环境中,并非浏览器环境——浏览器提供的document对象在这里不存在,document.write是浏览器端操作页面DOM的API,自然会触发未定义报错。

快速修复代码

如果只是想测试字符串分割函数的结果,把输出部分换成GAS支持的日志打印即可,同时给你的代码补全了缺失的大括号(避免逻辑异常):

function splitSrt(str, delim) {
  var word = "";
  var substr_list = [];

  str = str + delim;
  var x = str.length;

  for( var i = 0; i < x; i++){
    if(str[i] != delim) {
      word = word + str[i];
    } else {
      if(word.length != 0) {
        substr_list.push(word);
      }
      word = "";
    }
  }
  return substr_list;
}

function testSplit() {
  var str = "hello my world";
  var delim = ' ';
  var res = splitSrt(str, delim);
  
  // 用Logger打印结果,后续去日志面板查看
  res.forEach(a => Logger.log(a));
  // 也可以用console.log,同样在日志面板查看
  // res.forEach(a => console.log(a));
}

查看结果步骤

  1. 在GAS编辑器的函数下拉框选中testSplit,点击Run按钮
  2. 点击编辑器顶部菜单栏的「查看」→「日志」,就能看到分割后的每个单词

拓展:如果需要在网页上输出

如果你的代码是用于Web App场景,需要把后端逻辑和前端页面分开编写:

Code.gs(后端逻辑)

function splitSrt(str, delim) {
  var word = "";
  var substr_list = [];

  str = str + delim;
  var x = str.length;

  for( var i = 0; i < x; i++){
    if(str[i] != delim) {
      word = word + str[i];
    } else {
      if(word.length != 0) {
        substr_list.push(word);
      }
      word = "";
    }
  }
  return substr_list;
}

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index');
}

index.html(前端页面)

<!DOCTYPE html>
<html>
  <body>
    <script>
      // 调用后端的splitSrt函数,拿到结果后在页面输出
      google.script.run.withSuccessHandler(res => {
        res.forEach(a => {
          document.write(a + "<br>");
        });
      }).splitSrt("hello my world", " ");
    </script>
  </body>
</html>

将项目部署为Web App后,访问生成的链接就能在页面上看到每行一个单词的效果。

内容的提问来源于stack exchange,提问作者dmarm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 06:05:24