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

如何将UI端输入的HTML代码发送至Node后端并插入Pug模板展示

解决方案
  • 首先确认react-quill不适用你的场景:react-quill定位为富文本内容编辑器,仅处理页面正文的富文本片段,默认会自动将所有输入内容包裹在<p>标签中,同时会自动过滤<!DOCTYPE>、<html>、<head>等根级文档标签,无法满足完整HTML代码的输入需求。
  • 原生textarea完全可以解决你的需求:textarea是纯文本输入控件,不会对输入内容做任何自动修改、标签包裹或内容过滤,输入的内容会原封不动的提交到后端。React中受控textarea的示例写法如下:
import { useState } from 'react';

function HtmlCodeEditor() {
  const [htmlContent, setHtmlContent] = useState('');

  const submitToBackend = async () => {
    await fetch('/你的后端接口地址', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({ html: htmlContent })
    })
  }

  return (
    <>
      <textarea
        value={htmlContent}
        onChange={(e) => setHtmlContent(e.target.value)}
        rows={25}
        cols={100}
        placeholder="请输入完整HTML代码"
      />
      <button onClick={submitToBackend}>提交代码</button>
    </>
  )
}
  • Pug模板渲染注意事项:Pug默认会转义插入的内容避免XSS风险,要直接渲染原始HTML内容,需要使用!=操作符代替常规的=操作符:
// 直接渲染用户输入的完整HTML作为整个页面内容
!= 后端传递的HTML变量名

注意:直接渲染用户输入的原始HTML存在XSS注入风险,若你的服务面向公开用户,建议先对提交的HTML内容做恶意脚本过滤处理。

  • 若需要更好的代码编辑体验(比如语法高亮、格式校验、自动缩进),可以替换为CodeMirror、Monaco Editor等专业代码编辑器组件,这类组件同样不会修改输入的原始HTML内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:24:03