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

如何在Express(Node.js)中渲染MySQL富文本?onload失效问题求解

问题解答

当然可以用Express(Node.js)把MySQL里的富文本内容渲染到HTML页面,你的问题出在**<td>元素不支持onload事件**——这个事件仅在<body>、<img>、<script>等少数元素上触发,绑定在td上自然没效果;而onclick是所有元素都支持的事件,所以能正常工作。

给你两种解决办法:

方法一:直接在模板中渲染HTML(最优解)

你现在用<%= item.description %>会自动转义HTML内容,导致富文本变成纯文本显示。换成模板引擎的不转义输出语法即可(以EJS为例,其他引擎类似,比如Pug用!{}):

<td data-label="description"><%- item.description %></td>

这样页面加载时会直接把MySQL里的HTML元素渲染到页面,不需要额外JS处理。

方法二:页面加载完成后批量处理元素

如果一定要用JS处理,不要绑定元素的onload,而是在整个页面DOM加载完成后统一处理目标元素:

<script>
window.addEventListener('DOMContentLoaded', function() {
  // 找到所有需要处理的td元素
  const descCells = document.querySelectorAll('td[data-label="description"]');
  descCells.forEach(cell => {
    cell.innerHTML = cell.innerText;
  });
});
</script>

对应的td标签不需要绑定任何事件:

<td data-label="description"><%= item.description %></td>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 18:18:19