
imba 不支持直接在模板中嵌入裸 `<script>` 标签执行 dom 操作,需将 js 代码作为字符串字面量包裹在 `<script>` 标签内,由 imba 在挂载后自动求值执行。</script>
在 Imba 中,HTML 模板是声明式、编译时静态解析的,因此像原生 HTML 那样直接写 <script>document.getElementById(...)</script> 是无效且被忽略的——Imba 编译器不会将其视为可执行脚本,也不会注入到 DOM 中运行。
✅ 正确做法:将 JavaScript 代码写作字符串字面量,置于 <script> 标签内部(注意:不是标签内容,而是其子节点的字符串值):</script>
tag script-app
<self>
<h4> "Running js/ts inside Imba elements"
<div id='print'>
<script type="application/javascript">
'document.getElementById("print").innerHTML = "Hello";'
imba.mount <script-app>⚠️ 关键细节说明:
当用户要求为 Java 代码添加注释、修改注释、审查注释、整理注释格式,或要求按照代码注释规范处理 Java 文件时,使用本技能。本技能用于统一生成和维护 Java 类注释模板、按 Git 对比 release 判断版本号、补充每行代码上方中文块注释、调整注释空行规则,并保持 Java 文件 UTF-8 无 BOM 编码。典型触发场景包括:补充类注释、更新 @version、检查 @author 来源、整理行尾注释、把注释放到代码上一行、检查注释是否符合规范、构建前检查 Java 注释风格。
- <script> 标签必须显式设置 type="application/javascript"(或 text/javascript),否则 Imba 可能跳过处理;</script>
- 脚本内容必须是单引号包裹的字符串(如 '...'),且内部双引号需转义或改用单引号以避免语法冲突;
- 该字符串会在组件挂载(mounted 阶段)后被 eval 执行(Imba 内部机制),因此可安全访问已渲染的 DOM 节点;
- 不推荐在复杂逻辑中滥用此方式——它绕过了 Imba 的响应式系统,应优先使用 @state、def render 和事件绑定等声明式方案。
? 更推荐的替代方案(符合 Imba 最佳实践):
立即学习“Java免费学习笔记(深入)”;
tag script-app
def mount
# 利用生命周期钩子操作 DOM
document.getElementById('print').innerHTML = "Hello"
<self>
<h4> "Running js/ts inside Imba elements"
<div id='print'>
imba.mount <script-app>? 总结:Imba 中“内联脚本”的本质是挂载时求值的字符串表达式,而非 HTML 的 <script> 注入。它适用于快速原型或迁移旧代码,但生产环境建议拥抱 Imba 的响应式范式,用状态驱动视图,而非手动 DOM 操作。</script>

















