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

以JSON格式返回HTML并调用函数的可行性及实现问题

问题分析与解决方案

看起来你遇到的核心问题是按钮点击时找不到test()函数——从你给出的JSON代码来看,你只在responseHTML里写了console.log('TEST')的脚本,但完全没有定义test()这个函数,浏览器自然无法执行它。

下面给你两种可行的解决思路:

1. 直接在responseHTML中定义test函数

把test()函数的定义加到<script>标签里,确保它在HTML渲染后能被全局访问到:

{ 
  "responseHTML": "&lt;script&gt;function test() { console.log('按钮被点击啦!'); } console.log('TEST')&lt;/script&gt;&lt;div&gt;&lt;button onclick='test()'&gt;点击测试&lt;/button&gt;&lt;/div&gt;" 
}

这样当这段HTML被解析后,test()函数就存在于全局作用域中,按钮的onclick事件就能正常触发它。

2. 使用事件绑定替代内联onclick(更推荐)

如果你的页面有内容安全策略(CSP)限制,或者用了现代前端框架,内联脚本/内联事件可能会被拦截。这时候更稳妥的方式是用addEventListener绑定事件:

{ 
  "responseHTML": "&lt;div&gt;&lt;button id='testBtn'&gt;点击测试&lt;/button&gt;&lt;/div&gt;&lt;script&gt;document.getElementById('testBtn').addEventListener('click', () => { console.log('按钮被点击啦!'); }); console.log('TEST')&lt;/script&gt;" 
}

这种方式不需要依赖全局函数,直接在脚本里完成事件绑定,兼容性和安全性都更好。

额外注意事项

如果上述方法还是不行,你需要检查:

  • 页面是否开启了严格的CSP规则,禁止了内联脚本/事件;
  • 你的HTML渲染逻辑是否会自动转义脚本标签(比如某些框架的安全机制),导致脚本没有被执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:33:08