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

如何实现TinyMCE编辑器中预格式化文本自动换行?

解决TinyMCE预格式化文本自动换行问题

你的核心需求是让<pre>标签内的内容自动换行,而非横向滚动。现有代码的问题是CSS选择器写错了——你写的wrappretext是元素选择器,但实际要选中的是类名为wrappretext的元素,应该写成.wrappretext。

下面提供两种可行的实现方案:

方案一:全局修改所有预格式化文本样式(最简单)

直接给所有<pre>标签添加自动换行样式,无需额外配置格式菜单,插入的预格式化文本会自动生效:

<Editor
  ...
  plugins: [
      'advlist autolink lists link image charmap print preview anchor',
      'searchreplace visualblocks code fullscreen',
      'insertdatetime media table paste code help wordcount'
  ],
  selector: 'textarea',
  content_style: `
    body {
      font-weight: normal;
    }
    /* 给所有pre标签添加自动换行样式 */
    pre {
      white-space: pre-wrap;
      overflow-wrap: break-word; /* 替代旧的word-wrap,兼容性更好 */
    }
  `
/>

方案二:保留自定义格式菜单(按需选择)

如果你希望通过编辑器的样式菜单手动选择带换行的预格式化样式,修正原有代码的错误即可:

<Editor
  ...
  plugins: [
      'advlist autolink lists link image charmap print preview anchor',
      'searchreplace visualblocks code fullscreen',
      'insertdatetime media table paste code help wordcount'
  ],
  selector: 'textarea',
  content_style: `
    body {
      font-weight: normal;
    }
    /* 修正类选择器,添加.前缀 */
    .wrappretext {
      white-space: pre-wrap;
      overflow-wrap: break-word;
    }
  `,
  formats: {
    prewrap: {
      selector: 'pre',
      classes: 'wrappretext'
    }
  },
  style_formats: [
    {
      title: '带换行的预格式化文本',
      format: 'prewrap'
    }
  ]
/>

效果说明

两种方案都会让<pre>内的超长文本自动换行到下一行,避免出现横向滚动条,匹配你截图中的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:27