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

Azure逻辑应用内联JavaScript操作报错:document未定义的解决办法

修复Azure逻辑应用数组转HTML表格的问题

错误原因

你遇到的document is not defined错误,是因为Azure逻辑应用的内联JavaScript运行在服务器端环境,不存在浏览器里的document对象,最后一行操作DOM的代码完全多余,直接导致报错。

修复原有JavaScript代码

删除操作DOM的代码,改为直接返回生成的HTML字符串即可,修改后的代码如下:

var rows = [{
    name: "John",
    age: 20,
    email: "xx@hotmail.com"
}, {
    name: "Jack",
    age: 50,
    email: "xxx@hotmail.com"
}, {
    name: "Son",
    age: 45,
    email: "xxxx@hotmail.com"
}];

var html = "<table border='1|1'>";
for (var i = 0; i < rows.length; i++) {
    html+="<tr>";
    html+="<td>"+rows[i].name+"</td>";
    html+="<td>"+rows[i].age+"</td>";
    html+="<td>"+rows[i].email+"</td>";
    
    html+="</tr>";
}
html+="</table>";

// 直接返回HTML字符串供后续步骤使用
return html;

修改后,内联JS动作会输出生成的HTML表格,你可以把这个输出直接放到邮件的HTML正文中。

更适合Azure逻辑应用的替代方案:使用Liquid模板

不需要写JS,用逻辑应用原生支持的Liquid模板更简单可靠:

  1. 添加一个Compose动作,在输入框中写入Liquid模板(替换yourArrayVariable为你实际的数组变量名):
<table border="1">
  <tr>
    <th>姓名</th>
    <th>年龄</th>
    <th>邮箱</th>
  </tr>
  {% for item in yourArrayVariable %}
  <tr>
    <td>{{ item.name }}</td>
    <td>{{ item.age }}</td>
    <td>{{ item.email }}</td>
  </tr>
  {% endfor %}
</table>
  1. 在发送邮件的动作中,将邮件正文设置为Compose动作的输出,并勾选邮件的HTML格式选项。

这种方式不需要依赖内联代码,更符合逻辑应用的设计逻辑,也避免了服务器端JS的环境限制。

内容的提问来源于stack exchange,提问作者P.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:57:43